最近看了关于推广的4本书,有两本书让我印象最深刻,一本是《走进搜索引擎》,另外一本是《SEO 搜索引擎优化:技巧、策略与实战案例》,这两本书的特点是前者用21万字详细说明了搜索引擎的原理,后者穿插了一些实际的案例来讲解具体优化技巧,所以从一定程度上讲,你看完两本书之后,你如果说还不会做搜索引擎优化、还是被割韭菜,那么不好意思,你可以远离这个行业了。
但是第1本书的唯一的缺点就是有一定的专业度,对新手小白真的不是很友好,因为这本书的作者是一位博士。书中穿插了不少公式,所以降维打击还是挺厉害的。
这本书把搜索引擎划分了4个部分,下载系统、分析系统,索引系统、查询系统。还是老规矩,我简单的4个部分做个总结。
一、下载系统
下载系统事实上其实也就是我们说的下载各类型的页面,谈到下载系统肯定要少不了爬虫系统,这部分内容主要讲起了他从以什么方式去抓页面和抓取策略的介绍,我直接拿例子做说明,在下载系统中按照域名分解抓取任务的工作由一个调度员的模块来处理。通过域名分解将不同的网页调度给不同的爬虫进行抓取。
(1)调度员通过更新规则向URL请求一个URL 抓取任务。
(2)调度员计算出该URL,然后分配给编号为0的爬虫抓取。
(3)爬虫0实际抓取的网页存放在 Page库中。
(4)爬虫0在抓取的网页中提取其他链接后反馈给调度员。
(5)调度员判断网页类型,并设定初始更新时间等后存放在URL库中,继续转(1),周而复始。
二、分析系统
分析系统其实就是信息抽取及网页信息结构化。这句话怎么理解呢?事实上蜘蛛在抓取的url中去分析处理页面信息。在这一部分我们就需要注意点一个叫标签树的东西。而在处理这个过程需要标签分析栈,在这个过程中,其实就是提取代码块中的文本,我们这里举个例子:
测试1
测试2
测试3
...
分析系统从进栈到退栈之后,只会提取到测试1,测试2,测试3等文本信息,那么如何判断出哪些是正文信息呢?这里就需要用到投票方法,通过不同的规则去打分,打分越高的那一部分就是正文部分,怎么理解呢?比如我们得到文本块文本长度<10个字,得分为0,10-50个字得分5等依次类推。同样的,文本块文本在左侧位置加分5,右侧位置是0,中间部分是10,换句话说,打分越高的会被判断成正文,打分低的会被判断成广告或者无效信息,那么百度判断内容的时候,也是根据这些内容判断的。
提到分析肯定就少不了网页查重。这也是决定了页面是否收录的关键因素,在这一部分的实现方法中用的最多的就是l-Match算法和Shingle 算法。
这两种算法的不同之处在于前者去掉高频和低频词汇后的词汇通过排序得到一个字符串,使用签名算法获得该字符串的签名。如果有其他文档和这个签名值相同,则判定为相似。
后者采取抽瓦片方式去把一个文档转化为一组字符串集合(每个元素为一个Shingle),因此判断两个文档的相似性就转化为字符串集合的相似性。(我知道你听不懂,我举个例子)
比如这有两段话:
第一段:中国足球队在米卢的率领下首次获得世界杯决赛阶段的比赛资格,新浪体育播报。第二段:米卢率领中国足球队首次杀入世界杯决赛阶段,搜狐体育播报
l-Match算法
Shingle 算法
一般说来,网页查重至少需要如下3个主要步骤:
(1)特征抽取
(2)相似度计算、评价是否相似。
(3)消重
PS:判断内容原创度方面还是依据时间戳和爬虫爬取页面先后顺序,也就说先被爬虫爬取的,时间早的,基本判断是原创。
到达这一步之后就会分词,事实上市面上分词软件有很多,这里就不做做介绍了,分词基本上是按照字典分词和统计分词方法。我这里举个例子:
走进搜索引擎
分词后的最终实际结果是走进/搜索引擎,不要问为什么?
这里提到一个PR模型,也就是我们经常说的网页投票。从实际的应用来看就是我们需要对页面进行内链处理。
总结 一下:
三、索引系统
索引系统是一个复杂的工作流程,这里面涉及到倒排索引,倒排表,临时倒排文件,最终倒排文件,这里大概就讲一下系统会把一个个页面处理成文档编号,然后通过一系列计算形成正排表和倒排表。
四、查询系统
4个系统中只有查询系统是面对用户的,对于信息的量化问题,我们需要知道一个「信息嫡」(shang)的概念。另外用户提交的是一个query,但对搜索引擎来说,它需要处理的是一个检索词。这一部分会用到布尔检索模型。我们还是举个例子:比如用户搜索引擎系统构成这个词,那么下面有3个段落:
(1)在传统搜索引擎架构中,搜索引擎由4个系统构成,分别是下载系统、分析系统、索引系统及查询系统。
(2)机械行业内一般把小型挖掘简称为小挖,小挖由5个系统构成,分别是……,详细地理解这些名词可以使用Google 搜索引擎搜索一下。
(3)搜索引擎有4个主要功能模块,分别是下载系统,分析系统,索引系统和查询系统。这4个系统是搜索引擎的核心,其中查询系统是搜索引擎唯—直接面对客户的系统。
显而易见的,用户在查询搜索引擎系统构成,而百度是在检索搜索引擎、系统构成,那么以上3个页面中1、2都 包含这两个词,尤其第一个,在直观来讲,1相关性更好,但是布尔检索模型只解决有和没有问题,不解决好和不好的问题。
所以就要引入向量空间模型,这个模型把文字进行向量相似度计算,向量化的过程对一个文档按照关键词维度进行向量化,举个例子,走进搜索引擎,学习搜索引擎,那么分词后结果是,走进(1),学习(1),搜索引擎(2),那么这个短句的向量化计算是(2,1,1)。
按照刚才搜索结果来看,事实上是无法搜索出(3)的,所以,我们就需要经典的TF/IDF权重计算方法。(TF/IDF参考相关资料)
那么页面是如何排序的呢?算法通过计算文档向量和查询向量的夹角余弦求得向量相似度(一个可以量化的数值),排序就按照这个数的大小关系进行排列。
由于搜索结果是海量的,用户也几乎不会耐着性子看完全部的检索结果。有调查表明,大部分的用户使用搜索引擎查询时,在得到搜索结果页后不会向下翻页,而只关注搜索结果的第1 页。
总结一下:
查询系统中所谓的页面排序,事实上是依据相关度、页面重要级别等因素排序,这也是为什么有的人觉得同样都是一篇文章,为什么人家的页面比你排名高,原因在于别人的页面被投票次数多的多。(这个页面投票可能是外链或内链投票)
看完这两本书,感触颇深,这两本书的含金量都远高于其他SEO的书籍,至少在我目前看到书中,已经找不到跟这两本书所媲美的了。
相信行业的从业人员,除了采集和快排,书中的很多东西恐怕很多人也不了解,也不熟悉,所以如果你对这方面的东西感兴趣,建议好好看看,最起码可以避免被割韭菜,还能变相的提高知识面。
比如说花几千学个TDK?或者说花几千就学到个基础的东西,拉倒吧,这TM就是割韭菜。