
1.5.2 预处理
通过前面的爬行抓取流程,搜索引擎已经把网页全都抓取回来了,接下来的工作就是对这部分数据进行索引,其中包括多个处理流程。和爬行一样,预处理也是在后台完成的。
1.关键词提取
搜索引擎完全能识别的内容是文字。蜘蛛在爬取一个页面的同时也把大量的HTML代码抓取下来,如JavaScript(JS)、CSS、div标签等,这些对排名都毫无意义。关键词提取首先要将HTML标签、程序去除,只提取用于排名的文字。
2.去除停用词
同一个词可能在一篇网页中出现多次,如“得”“的”“地”“啊”“阿”“呀”“却”“再”“从而”之类,反复出现就没什么价值了,我们称这类词为停用词。这类词也需要去除。
3.分词技术
分词是中文搜索引擎特有的技术。中文信息和英文信息的差别在于:英文单词与单词之间是用空格分隔的,这对中文就行不通了。搜索引擎必须将整个中文句子切割成小单元词,如“我的兄弟姐妹”拆分出来的形态是“我”“的”“兄弟”“姐妹”。分词技术的效率直接影响到整个系统的效率。
分词的方法基本上有两种:基于字符串匹配的分词和基于统计的分词。
1)基于字符串匹配的分词方法
按匹配方向的不同,分词方法可分为正向匹配、逆向匹配和最少切词。可将这三种方法混合起来使用,即正向最大匹配、逆向最大匹配、正向最小匹配、逆向最小匹配。
正向最大匹配:假设字典中最长的词的字数为m,先根据汉语标点符号及特征词把汉语句子切分为短语,然后取短语的前m个字,在字库里面查找是否存在这个词,如果存在,短语就去掉这个词;如果不存在,就去掉这m个字的最后一个字。接下来检查剩下的词是否是单字,若是则输出此字并将此字从短语中去掉,若不是则继续判断字库中是否存在这个词,如此反复,直到输出一个词。此后继续取剩余短语的前m个字,如此循环,这样就可以将一个短语分成词的组合了。
以“我是一个好人”为例,假设字典中最长词的字数为3,正向最大匹配顺序为:
(1)取出短语“我是一”,检查“我是一”是否在字典中存在或是一个单字,处理结果是去掉最后面的“一”字;
(2)检查短语“我是”是否在字典中存在或是一个单字,处理结果是去掉“是”字;
(3)检查“我”字是否在字典中存在或是一个单字,“我”是一个单字,将“我”字输出;
(4)继续取出短语“是一个”,检查“是一个”是否在字典中存在或是一个单字,处理结果是去掉最后面的“个”字;
(5)检查短语“是一”是否在字典中存在或是一个单字,处理结果是去掉“一”字;
(6)检查“是”字是否在字典中存在或是一个单字,“是”是一个单字,将“是”字输出;
(7)取出短语“一个好”,检查“一个好”是否在字典中存在或是一个单字,处理结果是去掉最后面的“好”字;
(8)检查短语“一个”,发现是字典中的一个词,直接输出;
(9)检查短语“好人”,发现是字典中的一个词,直接输出;
(10)最后输出结果为:我、是、一个、好人。
逆向最大匹配:由句子结尾处起进行分词的方法。逆向最大匹配技术最大的一个作用是用来消歧。如“姚金刚周末去了汤河口镇钓鱼”,按照正向最大匹配结果为:姚/金刚/去/了/汤/河口镇/钓鱼,很明显这当中产生了歧义。汤河口镇是一个地名,没有被正确切分。采用逆向最大匹配技术可以修正这个错误。例如设定一个分词节点大小为8,那么“去了汤河口镇钓鱼”中“去了”就被分出来了,剩下“汤河口镇钓鱼”,这样一来歧义就消除了。
正向最小匹配/逆向最小匹配:一般很少使用到,实际使用中逆向匹配的精准度要高于正向匹配度。
2)基于统计的分词方法
基于统计的分词方法是直接调用分词词典中的若干词进行匹配,同时也使用统计技术来识别一些新的词,将所有的统计结果匹配起来以发挥切词的最高效率。
分词词典是搜索引擎判断词语的依据,基本上收录了汉语词典当中所有的词。例如我们在搜索引擎中输入“我要减肥了”,“减肥”两字就会被判定为一个词。现在网络上经常会出现一些新造的网络流行词,如“神马”“犀利哥”等,这样的词也都会慢慢地被收录。分词词典只有不断更新才能满足我们日常搜索判断的需求。
4.消除噪声
网页上有形形色色的广告文字、广告图片、登录框、版权信息等内容,为了某些目的不得不放上去,这些对搜索引擎来说没有什么用处,可以直接去掉。图1-10所示是去哪儿网的版权信息模块,对于搜索引擎而言属于噪声。

图1-10 去哪儿网噪声元素
5.分析网页,建立倒排文件
(1)正向索引。经过前面几步之后就可以提取关键词了。把页面内容转换为一个关键词组合,同时记录每一个关键词在页面上的出现频率、出现次数、格式、位置,如图1-11所示。

图1-11 简化的索引词表结构
(2)倒排索引。正向索引还不能直接用于排名。假如用户要搜索关键词3,如果只用正向索引,排名程序需要扫描所有索引中的文件,找出包含关键词3的文件,再进行相关计算。这样一来就无法实时返回排名结果。所以搜索引擎会将正向索引数据库重新构造为倒排索引,倒排索引以关键词为索引,如图1-12所示。

图1-12 倒排索引词表结构
6.链接关系计算
链接关系计算是预处理中重要的一步。主流搜索引擎排名因素都包含网页之间的链接流信息,事先必须进行页面有哪些链接指向哪些页面,每个页面有哪些导入链接,链接使用了什么锚文本等种种链接计算。Google PR是这种链接关系计算的重要代表之一。
7.特殊文件处理
搜索引擎可以抓取和索引以文字为基础的多种文件类型,但对Flash、视频、PPT、XLS、图片等非文字内容则不能执行脚本和程序。搜索引擎目前还无法获取Flash文件和图片中的文字信息。图片一般推荐使用ALT标签来向搜索引擎传达图片信息。