数学之美 系列五 简单之美布尔代数和搜索引擎的索引.docxVIP

数学之美 系列五 简单之美布尔代数和搜索引擎的索引.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[建立一个搜索引擎大致需要做这样几件事:自动下载尽可能多的网页;建立快速有效的索引;根据相关性对网页进行公平准确的排序。我们在介绍Google Page Rank(网页排名) 时已经谈到了一些排序的问题,这里我们谈谈索引问题,以后我们还会谈如何度量网页的相关性,和进行网页自动下载。] 世界上不可能有比二进制更简单的计数方法了,也不可能有比布尔运算更简单的运算了。尽管今天每个搜索引擎都宣称自己如何聪明、多么智能化,其实从根本上讲都没有逃出布尔运算的框框。 布尔(George Boole) 是十九世纪英国一位小学数学老师。他生前没有人认为他是数学家。布尔在工作之余,喜欢阅读数学论著、思考数学问题。1854 年“思维规律”(An Investigation ofthe Laws of Thought, on which are founded the Mathematical Theories of Logicand Probabilities)一书,第一次向人们展示了如何用数学的方法解决逻辑问题。 布尔代数简单得不能再简单了。运算的元素只有两个1 (TRUE, 真) 和 0 (FALSE,假)。基本的运算只有“与”(AND)、“或” (OR) 和“非”(NOT) 三种(后来发现, 这三种运算都可以转换成“与”“非” AND-NOT一种运算)。全部运算只用下列几张真值表就能完全地描述清楚。 AND | 1 0 1 | 1 0 0 | 0 0 这张表说明如果 AND 运算的两个元素有一个是 0,则运算结果总是 0。如果两个元素都是1,运算结果是 1。例如,“太阳从西边升起”这个判断是假的(0),“水可以流动”这个判断是真 的(1),那么,“太阳从西边升起并且水可以流动”就是假的(0)。 OR | 1 0 1 | 1 1 0 | 1 0 这张表说明如果 OR 运算的两个元素有一个是 1,则运算结果总是 1。如果两个元素都是 0,运算结果是 0。比如说,“张三是比赛第一名”这个结论是假的( 0),“李四是比赛第一名”是真的(1),那么“张三或者李四是第一名”就是真的(1)。 NOT | 1 | 0 0 | 1 这张表说明 NOT 运算把 1 变成 0,把 0 变成 1。比如,如果“象牙是白的”是真的(1),那么“象牙不是白的”必定是假的(0)。 读者也许会问这么简单的理论能解决什么实际问题。布尔同时代的数学家们也有同样的问 题。事实上在布尔代数提出后 80 多年里,它确实没有什么像样的应用,直到 1938 年香农 在他的硕士论文中指出用布尔代数来实现开关电路,才使得布尔代数成为数字电路的基础。所有的数学和逻辑运算,加、减、乘、除、乘方、开方等等,全部能转换成二值的布尔运算。 现在我们看看文献检索和布尔运算的关系。对于一个用户输入的关键词,搜索引擎要判断每篇文献是否含有这个关键词,如果一篇文献含有它,我们相应地给这篇文献一个逻辑值 -- 真(TRUE,或 1),否则,给一个逻辑值 -- 假(FALSE, 或 0)。比如我们要找有关原子能应用的文献,但并不想知道如何造原子弹。我们可以这样写一个查询语句“原子能 AND 应用AND (NOT 原子弹)”,表示符合要求的文献必须同时满足三个条件: 包含原子能 包含应用 不包含原子弹 一篇文献对于上面每一个条件,都有一个 True 或者 False 的答案,根据上述真值表就能算出每篇文献是否是要找的。 早期的文献检索查询系统大多基于数据库,严格要求查询语句符合布尔运算。今天的搜索引 擎相比之下要聪明的多,它自动把用户的查询语句转换成布尔运算的算式。当然在查询时, 不能将每篇文献扫描一遍,来看看它是否满足上面三个条件,因此需要建立一个索引。 最简单索引的结构是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。有多少 篇文献,就有多少位数,每一位对应一篇文献, 1 代表相应的文献有这个关键字, 0 代表没有。比如关键字“原子能”对应的二进制数是 0100100001100001...,表示第二、第五、第九、第十、第十六篇文献包含着个关键字。注意,这个二进制数非常之长。同样,我们假定 “应用”对应的二进制数是 0010100110000001...。那么要找到同时包含“原子能”和“应用” 的文献时,只要将这两个二进制数进行布尔运算 AND。根据上面的真值表,我们知道运算结果是 0000100000000001...。表示第五篇,第十六篇文献满足要求。 注意,计算机作布尔运算是非常非常快的。现在最便宜的微机都可以一次进行三十二位布尔运算,一秒钟进行十亿次以上。当然,由于这些二进制数中绝大部分位数都是零,我们只需要记录那些等于 1 的位数即可。于是,搜索引擎的索引就变成了一张大表

文档评论(0)

tianya189 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体阳新县融易互联网技术工作室
IP属地上海
统一社会信用代码/组织机构代码
92420222MA4ELHM75D

1亿VIP精品文档

相关文档