第七章 贾里尼克和现代语言处理
总结:学习是一辈子的事情。
第八章 简单之美——布尔代数和搜索引擎
⭐搜索引擎原理:
①自动下载尽可能多的网页
②建立快速有效的索引
③根据相关性对网页进行公平准确的排序
1 布尔代数
文献检索和布尔运算的关系:比如要找关于原子能,并不想知道原子弹。可以写这样一个查询语句“原子能AND应用AND(NOT原子弹)”,表示符合要求的文献必训同时满足三个条件:
包含原子能,包含应用,不包含原子弹
一篇文献对于上面的每一个条件,都有一个TRUE或者FALSE的答案。这样逻辑推理和计算就合二为一了。
2 索引
索引使得搜索引擎如此快速准备的找到大量的结果。
数据库的查询语句(SQL)支持各种复杂的逻辑组合,但是背后的基本原理是基于布尔运算的。
最简单的索引结构是用一个很长的二进制数表示一个关键字是否出现在每篇文献中。有多少篇文献,就有多少位数,每一位对应一片文献,1代表相应的文献有这个关键字,0代表没有。其实就是讲一篇篇千差万别的文本进行量子化的过程。
注意,做布尔运算非常非常快。于是,搜索引擎的索引就变成了一张大表:表的每一行对应一个关键词,而每一个关键词后面跟着一组数字,是包含该关键词的文献序号。
早期搜索引擎由于收计算机速度和容量的限制,只能对重要、关键的主题词建立索引。
现在常见的搜索引擎都会对所有的词进行索引。但是,这在工程上却极具挑战性。
索引非常大时,通常是通过分布式的方式储存到不同的服务器上。普通做法就是根据网页的序号将索引分成很多份,分别储存在不同的服务器中。每当接受一个查询时,这个查询就被分发到许许多多的服务器中,这些服务器同时并行处理用户请求,并返回结果到主服务器进行合并处理,最后返回结果给用户。
用户的内容越来越多,据此,设计不同等级的索引。常用的快,非常用的要求变低。