文章目录
- 一、搜索引擎
- 定义
- 分类
- 1.全文搜索引擎
- 2.目录索引
- 3.元搜索引擎
- 4.垂直搜索引擎
- 工作原理
- 1.抓取网页
- 2.处理网页
- 3.提供检索服务
- 核心算法
- 组成部分
- 发展趋势
- 二、网络蜘蛛
- 三、中文分词
- 基于词典的分词方法
- 基于统计的分词方法
- 基于理解的分词方法
- 分词难点
- 1.歧义识别
- 2.新词识别
- 四、链接分析
- 1. Web图
- 2. 锚文字
- 3. 随机游走模型
- 4. 子集传播模型
- 5. PageRank算法
一、搜索引擎
因特网包括成百上千的网站,设计数以亿计的资源。因此需要通过搜索引擎了快速定位到所需资源,搜索引擎技术对网站的运营具有非常重要的意义。
定义
搜索引擎(Search Engine)是指根据一定的策略、运用特定的计算机程序收集互联网上的信息,在对信息进行组织和处理后,将处理后的信息显示给用户,是为用户提供检索服务的系统。
分类
1.全文搜索引擎
是名副其实的搜索引擎,代表有谷歌、百度。他们从互联网提取各个网站的信息(以文字为主),建立起数据库,并能检索与用户查询条件相匹配的记录,按一定顺序行会结果。
根据搜索结果的来源不同,全文搜索引擎可分为两类,一类拥有自己的网页抓取、索引、检索系统,有独立的蜘蛛程序(Spider)(或称爬虫Crawler、机器人Rovot),能自建网页数据库,搜索结果直接从自身的数据库中调用;另一类则是租用其他搜索引擎的数据库,并按自定的格式排列搜索结果。
特点是搜全率比较高。
搜索引擎的自动信息搜索功能分为两种:一种是定期搜索,即内阁一段时间,搜索引擎自动派出蜘蛛程序,对一定IP地址范围类的互联网进行检索。另一是提交网站搜索,即网站的拥有者主动向搜索引擎提交网址。
2.目录索引
是将网站分门别类地存放在相应的目录中,用户在查询信息时,可以选择关键词搜索,也可按分类目录逐层查找。严格意义上,不算真正的搜索引擎,只是按目录分类的网站链接列表,代表有雅虎、新浪分类目录搜索。
3.元搜索引擎
元搜索引擎(Meta Search Engine)在接受用户查询请求后,同时在多个搜索引擎上搜索,并将结果返回给用户。在搜索结果方面,有的直接按来源排列搜索结果,有的则按自定规则将结果重新排列。
4.垂直搜索引擎
垂直引擎专注于特定的领域和搜索需求,在其特定的领域有更好的用户体验。
特点是所需的硬件成本低、用户有需求特定、查询方式多样。
工作原理
1.抓取网页
网页抓取程序顺着网页中的链接,连续地抓取网页,被抓取的网页被称之为网页快照。
2.处理网页
搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中最重要的是提取关键词,建立索引文件。其他预处理工作包括去除重复网页、分词、判断网页类型、分析超链接、计算网页重要度/丰富度等。
3.提供检索服务
用户输入关键词进行检索,搜索引擎从索引数据中找到匹配该关键词的网页。为用户提供网页标题和URL,同时提供一段摘要和其他信息。
核心算法
- 网页抓取程序
- 关键词提取
- 索引文件创建方式
- 重复网页合并
- 结果排序算法
- 中文分词算法
- 网页类型判断
- 超链接分析(语言判断:meta标签、字符编码、内容分析)
- 网页重要性与丰富度计算
组成部分
- 搜索器:其功能是在互联网中漫游,发现和收集信息。
常使用分布式、并行计算技术,以提高信息发现和更新速度。
要求尽可能多、尽可能快地搜索各种类型的新信息,定期更新搜索过的旧信息。目前有两种搜索策略:- 从一个起始URL集合(通常为一些非常主流、包含很多链接的站点)开始,循着这些URL中的超链接,以宽度优先、深度优先或启发式循环地在互联网中发现信息。
- 将Web空间按照域名、IP地址或国家域名划分,每个搜索器负责一个子空间的穷尽搜索。
- 索引器:其功能是理解搜索器所搜索到的信息,从中抽取出索引项,用于表示文档以及生成文档库的索引表。
索引表一般使用倒排表,即由索引项查找相应的文档。索引表也可能要记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系。
索引器可以使用集中式索引算法或分布式索引算法。当数据量很大时,必须使用即时索引。
一个搜索引擎的有效性很大程度上取决于索引的质量。
索引项有客观索引项和内容索引项两种。- 客观索引项与文档的语音内容无关,如作者名、URL、更新时间、编码、长度、链接流行度;
- 内容索引项是用来反映文档内容的,如关键词及其权重、短语、单词等。
可以分为单项索引和多项索引(短语索引项)。- 单项索引对于英文来讲是取单词,比较容易提取。对于中文,必须进行词语的切分(分词技术)
一般要给单项索引项赋予一个权值,以表示该索引项对文档的区分度,同时用来计算查询结果的相关度,使用方法一般有统计法、信息论法和概率法。 - 短语索引项提取方式有统计法、概率法和语言学法,
- 单项索引对于英文来讲是取单词,比较容易提取。对于中文,必须进行词语的切分(分词技术)
- 检索器:其功能是根据用户的查询在索引库中快速检索文档,进行相关度评价,对将要的输出结果排序,并能按用户的查询需求合理反馈信息。
- 用户接口(HTML页面):接纳用户查询、显示查询结果、提供个性化查询项。
主要目的是方便用户使用搜索引擎,高效率、多方式地从搜索引擎中得到有效、及时的信息。
用户接口可以分为简单接口和复杂接口两种。- 简单接口只提供用户输入查询串的文本框;
- 复杂接口可以让用户对查询进行限制,如逻辑运算、相近关系、出现位置(标题、内容)、域名范围、信息时间、长度。
发展趋势
- 提高搜索引擎对用户检索提问的理解
- 对检索结果进行处理
- 确定搜索引擎信息收集范围,提高搜索引擎的针对性。
- 将搜索引擎的技术开发重点放在对检索结果的处理上,提供更优化的检索结果。
- 搜索引擎的分类
- 专家系统。
二、网络蜘蛛
三、中文分词
分词时将连续的字序列按照一定的规范重新组合成词序列的过程。
基于词典的分词方法
按照一定策略将待分析的汉字串与一个词典中的词条进行匹配,若再词典中找到该字符串,则匹配成功。
正向最大匹配算法(FMM):设m=5,根据正向最大匹配原则,先对句子取前5个字符,在词典中进行查找:若匹配,则切下该词,对剩余句子继续迭代;若不匹配,则m=m-1,进行匹配。
中文中90%的文本,FMM和RMM(逆向最大匹配)结果完全重合且正确;
9%的句子FMM和RMM结果不同,但其中必有一个正确(歧义检测成功);
1%的句子FMM和RMM结果都不正确(无论是否相同)
故,双向最大匹配算法(BMM)在中文信息系统应用广泛。
基于统计的分词方法
在给定大量的已经分词的文本的前提下,利用统计机器学习模型学习词语切分的规律(训练),从而实现对未知文本的切分。
基于理解的分词方法
让计算机模拟人对句子的理解。基本思想是在分词的同时进行句法、语义分析。
分词难点
1.歧义识别
- 交叉型歧义:词语ABC可分为AB/C和A/BC
- 组合型歧义:词语AB可分为AB和A/B
- 混合型歧义:同时包含交叉性和组合型歧义
中文文本中,交际型歧义和组合型歧义出现的比例约为1:22。
全切分方法:依据词表,给出输入文本的所有可能切分结果,然后根据一定的原则(切分次数最少或概率最大),选择一种结果作为最终切分结果。
2.新词识别
指已有的词表中没有收录的词,或者已有的训练语料中没有出现的词(集外词)。
对于大规模真实文本来说,未登录词对于分词精度的影响远远大于歧义切分。
四、链接分析
1. Web图
如果将一个网页抽象成一个个节点,而将网页之间的链接理解成一条有向边,则可以把整个互联网抽象为一个一个包含页面节点和节点之间联系边的有向图,称之为web图。
2. 锚文字
页面内某个出链附近的一些描述性文字。
3. 随机游走模型
用户随机选择一个网页作为上网的起始网页,从该网页类所含的超链接随机选择一个页面继续浏览,重复进行,直到对某个主题感到厌倦而重新随机选择另一个网页浏览。
4. 子集传播模型
将互联网网页按照一定的规则划分为两个甚至多个子集,从某个具有特殊性质的子集出发,给与子集类网页初始权值,再根据这个特殊子集类网页和其他网页之间的连接关系,按照一定的方式将权值传递给其他网页。
思想:重要的网址,其连接的网页重要性也高。
5. PageRank算法
基本思想:
- 认可度高度网页越重要,即反向链接(入链)越多的网页越重要。
- 反向链接的原网页质量越高,被这些高质量网页的链接指向的网页越重要。
- 出链越少的网页越重要。
转移矩阵每一列代表一个节点,该节点所有出链平分权值。如,A对B、D均有链接,则矩阵第一列为[0, 0.5, 0, 0.5]