分词与索引库

开发 前端
分词是很多做SEO的人常听到的概念,为了让大家在这个方面不会有疑惑,本文主要介绍的是分词以及索引库。这也是更深入的了解搜索引擎的开始。希望对你有帮助,一起来看。

分词是很多做SEO的人常听到的概念,为了让大家在这个方面不会有疑惑,现在要来讲一下分词以及索引库。这也是更深入的了解搜索引擎的开始。

搜索引擎每天都是在处理一个基本的需求:用户搜索一个关键词,搜索引擎马上找到相关的网页给用户。这个过程要怎么实现呢?下面就分步来了解这个过程。

首先搜索引擎要尽可能多的把互联网上的网页搜集下来,这样能提供大量的网页给用户查询。这一部分由爬虫来解决,顺着互联网上的链接一个个往下抓取。***就有了一堆记录着网页各种信息的资料库。目前的现状,***能使这个资料库里有大概100多亿个网页。资料库里记录了这些网页的URL,整个网页的HTML代码,网页标题等等信息。

然后,搜索引擎拿到用户输入的这个关键词后,要从这个资料库里把相关的网页找出来给用户。这里就碰到好几个问题了:

1,要怎么快速的从上100亿个网页里找出匹配的网页的呢?

要知道这是从上百亿的网页里找符合这个关键词内容的网页,如果像用word里那种用ctrl + F 轮询的查找方式的话,即使用超级计算机,也不知道要消耗多少时间。但是现在的搜索引擎,在几分之一秒里就实现了。所以一定是做了一些处理才实现的。

解决办法也倒简单,就是建立一份索引库。就像我们查《新华字典》一样,我们不会翻遍《新华字典》的每一页来查那个字在哪页,而是先去索引表那里找这个字,拿到页码后,直接翻到那页就可以了。搜索引擎也会为上百亿的网页建立一个索引库,用户查询信息的时候,是先到搜索引库里查一下要找的信息在哪些网页,然后就引导你去那些网页的。

如下图:

索引库

索引库

2,索引库里用什么样的分类方式?

我们知道,《新华字典》的索引表是用字母列表或者偏旁部首的分类方式的。那么搜索引擎的索引库里是怎么分类的?是不是也可以用字母列表的方式?

搜索引擎如果以字母列表的方式排列索引库,那么平均每个字母下要查询的网页数量是 100亿÷26=3.85亿 ,也还是一个很大的数字。而且搜索引擎上,今天是100亿个网页,过不了多久就是300亿个网页了。

***,终于找到一个解决办法:索引库里用词语来分类。

因为尽管互联网上的网页是不断激增的,但是每一种语言里,词语的数量都是相对固定的。比如英语就是一百多万个单词,100亿 ÷ 1百万 = 1 万;汉语是8万多个词语,100亿÷8万=12万5千。都是计算机很容易处理得过来的。

用词语来分类还有一个好处,就是可以匹配用户查询的那个词语。本来用户就是要查这个词语的,那我就按这个词语去分类就是。

所以,搜索引擎的索引库,***就是这个样子的:

模拟的索引库

模拟的索引库

理论上,当用户输入关键词“mp3 player”搜索时,搜索引擎就从 “mp3”那行 和 “player”那行里拿出同时都有的、交集的url来即可。

上图也是现在英文版的google.com上的真实排名情况,可以看到 www.winamp.com 这个网站在搜索“mp3”的时候排第4位,在搜索“player”的时候也排第4位。当搜索“mp3 player”的时候,因为没有其他网站比它更匹配这个词语,所以它排在了***位。

排在***

排在***

当搜索引擎把一个网站抓取下来后,接着要做的事情就是把网页里的词语分开放到索引库里。分词在这个时候就要应用到了,所谓的分词,其实很简单,就是把词语分开而已。

英语的分词好处理一点,因为英语的每个单词之间是用空格分开的,基本上就只要处理一些虚词、介词,还有一些词语的单复数,变形词等等。但是中文的分词就复杂很多了,句子中的每个字都连在一起,有时候即使是人来判断,都还有产生歧义的时候。中文的分词有很多方法,也很容易弄懂的,如正向切分法,逆向切分法等等,网上有很多相关的资料。

谷歌的中文分词方法是从国外一家第三方公司买的。百度的分词方法是自己创立的,可能在词库上面比谷歌有点优势。不过其他方面差了一些。

当爬虫找到一个网页的时候,在搜索引擎看来,这个网页就是一大堆词语的组合。基本流程如下:

搜索引擎的处理过程

搜索引擎的处理过程

看完这个流程图,应该能给大家在做内部优化的时候有所启发的。

我建议大家再去看一下《把Web标准化进行得更彻底一点》这篇文章,还有《“丰富网页摘要”,让你的网站与众不同》以及《SEO案例:锚文本、关键字、nofollow、Web标准化(一)》和 《SEO案例:锚文本、关键字、nofollow、Web标准化(二)》。那些文章和这篇文章一样,都是在讲同一个问题。

一定要站在搜索引擎的角度,把它的这些原理了解清楚了,才会让你明白哪些因素才是你应该关注的重点。

有人说: SEO就是重在细节。这应该是经验之谈。但是不知道大家有没有想过的是:是不是可能原本这些看似细节的东西,其实就是应该注意的重要的东西呢?如果你不能控制好你的排名,有没有想过可能你以前特别在意的一些SEO因素,其实有些并不是重点?;而只是你把影响排名的部分因素弄错了?

上面的很多知识,其实在《搜索引擎营销:网站流量大提速》里都有提及的。那本书要去精读的原因之一就是它讲了很多看似很普通的原理,但是都是有用的。

比如在选关键词的时候,也可以参考一下这个词语的索引量。从上面的原理可以看出,这个索引量反应了这个词语在这种语言当中人们使用的流行程度。所以国外有些计算关键词KEI指数的公式里,也把这个关键词的索引量加入了进来。

【编辑推荐】

  1. 网站优化之如何在网站中插入关键词
  2. 浅谈锚文本链接的作用和优化策略
  3. SEO请相信“锚文本”的力量
  4. 站更新对seo优化推广的影响
  5. 避免错误、杜绝降权是SEO的重中之重
责任编辑:于铁 来源: SEM一家之言
相关推荐

2020-12-01 11:34:14

Elasticsear

2022-09-07 08:16:09

MySQL索引

2010-05-26 13:42:08

MySQL数据库索引

2010-04-26 14:24:58

Oracle数据库索引

2010-05-21 10:01:11

MySQL数据库

2023-12-14 15:27:12

中文分词Python

2010-04-09 13:59:48

Oracle数据库索引

2010-05-21 12:15:52

2011-03-07 17:51:00

Oracle数据库优缺点

2021-11-01 23:57:03

数据库哈希索引

2019-06-03 15:15:09

MySQL索引数据库

2013-11-19 10:08:06

MongoDB

2010-07-19 16:36:13

SQL Server视

2010-06-04 11:28:05

MySQL数据库

2011-04-12 10:21:24

Oracle数据库索引树

2023-06-08 07:25:56

数据库索引数据结构

2011-08-01 09:50:31

SQL Server数主键索引

2021-11-30 21:10:19

数据库B树索引

2011-03-16 08:54:45

Oracle数据库索引

2010-04-23 11:32:22

Oracle数据库
点赞
收藏

51CTO技术栈公众号