内容简介
《大数据搜索引擎原理分析》是畅销书升级版,向读者提供了一套完整的大数据时代背景下的搜索引擎解决方案,详尽地介绍了搜索引擎的技术架构、算法体系及取得的成果,并以模块化的方式进行组织。《大数据搜索引擎原理分析》着重介绍了机器学习在搜索引擎中的应用,包括中文分词、聚类、分类等核心的机器学习算法,并结合示例加以介绍和分析,使读者可以更好地理解机器学习在搜索引擎中的价值;同时,阐述了大数据给搜索引擎带来的新特性,结合目前大数据分析的主流工具,在搜索引擎中构建知识图谱,以及进行日志反馈学习,可以使得搜索引擎更加智能。《大数据搜索引擎原理分析》不仅适合作为互联网行业从业者的技术参考书,也适合作为搜索引擎爱好者的参考读物。
作者简介
刘凡平,硕士,毕业于中国科学技术大学软件系统设计专业。曾任职微软亚太研发集团、百度(中国)有限公司。现任薇问(北京)科技有限公司首席技术官,负责搜索引擎技术与大数据人工智能平台研发工作。擅长搜索引擎、大数据分析、分布式计算等相关研发工作,是Iveely开源搜索引擎的主要贡献者之一。
目录
第1章引论1
1.1搜索引擎的过去1
1.2搜索引擎的现在2
1.3搜索引擎的未来4
1.4大数据与搜索引擎6
1.4.1搜索价值提升6
1.4.2用户价值提升7
1.5大数据与人工智能7
1.5.1人工智能的发展7
1.5.2人工智能技术9
1.6 搜索引擎与人工智能11
1.7本章小结13
第2章搜索引擎原理与技术14
2.1基本工作原理14
2.2基本模块结构15
2.2.1网络爬虫服务16
2.2.2索引服务17
2.2.3缓存服务18
2.2.4搜索服务19
2.2.5日志服务21
2.3技术概要22
2.3.1自然语言处理22
2.3.2知识图谱23
2.3.3海量数据存储25
2.3.4分布式计算27
2.3.5搜索排序28
2.4 开源技术29
2.4.1 ApacheLucene29
2.4.2 ApacheNutch31
2.4.3 Sphinx32
2.4.4 ElasticSearch34
2.5本章小结36
第3章自然语言处理框架37
3.1英文分词37
3.2中文分词39
3.2.1中文分词概述39
3.2.2基于词库的分词技术40
3.2.3基于条件随机场模型的中文分词42
3.2.4分词粒度49
3.3词性标注50
3.3.1隐马尔科夫模型概要51
3.3.2隐马尔科夫模型与词性标注52
3.4语义相似度60
3.5依存句法分析62
3.5.1依存句法分析概要62
3.5.2依存句法分析实现65
3.6情感倾向分析68
3.7文档关键词提取70
3.7.1文档关键词提取概述70
3.7.2基于TF-IDF算法71
3.7.3基于TextRank算法73
3.8文档句子相似度分析76
3.8.1句子相似度77
3.8.2文档相似度79
3.9文档核心句提取80
3.10文本的分类与聚类83
3.10.1文本分类84
3.10.2文本聚类89
3.11语种检测96
3.12本章小结98
第4章构建大数据存储引擎99
4.1架构体系100
4.1.1结构概要100
4.1.2服务器上线103
4.1.3服务器下线103
4.1.4数据读取104
4.2数据存储模型105
4.3数据压缩107
4.4负载均衡108
4.5数据存储逻辑视图111
4.6本章小结114
第5章构建分布式实时计算115
5.1概述115
5.2设计架构117
5.2.1设计思想117
5.2.2基本框架119
5.3运行模式121
5.4负载均衡122
5.5通信设计123
5.5.1基本方式124
5.5.2分布式远程服务调用124
5.6容灾恢复125
5.7数据容错原理126
5.8数据处理设计示例128
5.9本章小结129
第6章分布式可扩展爬虫130
6.1爬虫体系架构130
6.1.1主从分布式结构爬虫131
6.1.2对等分布式结构爬虫131
6.1.2基于分布式计算平台爬虫132
6.2网页解析133
6.2.1状态码处理134
6.2.2链接去重134
6.2.3广告识别136
6.2.4网站地图139
6.2.5非网页数据获取140
6.2.6网页去重141
6.2.7链接提取145
6.2.8爬虫协议146
6.3网页结构化148
6.3.1网页的编码信息148
6.3.2网页的正文信息149
6.3.3网页的关键词信息153
6.3.4网页的标题153
6.3.5网页的发布时间155
6.3.6网页的语言检测155
6.3.7其他结构化数据156
6.4网页抓取策略157
6.5爬虫权限应对158
6.6深网抓取161
6.7抓取更新策略162
6.8本章小结164
第7章大数据构建知识图谱165
7.1概述165
7.1.1 开放知识图谱165
7.1.2 知识图谱与认知智能167
7.1.3 图数据库:Neo4j168
7.1.4 资源描述框架:RDF172
7.2搜索引擎与知识图谱174
7.3可靠数据源选择176
7.4实体抽取177
7.5关系抽取178
7.5.1关系抽取概述179
7.5.2隐藏关系抽取180
7.5.3结构化确定关系抽取183
7.5.4非结构化确定关系抽取185
7.6知识图谱检测190
7.6.1实体关系修正190
7.6.2实体对齐191
7.6.3实体歧义分析193
7.7知识推理与知识计算194
7.7.1知识推理194
7.7.2知识计算195
7.8知识聚类198
7.9智能搜索实现200
7.9.1模式匹配200
7.9.2知识拆解201
7.9.3合并求解203
7.10智能搜索扩展205
7.10.1常识性智能搜索205
7.10.2实时信息智能搜索206
7.10.3可交互式智能搜索207
7.11 知识图谱应用208
7.11.1 问答系统208
7.11.2 情报分析211
7.11.3 智慧医疗214
7.11.4 推荐系统215
7.12本章小结217
第8章索引构建机制218
8.1倒排索引218
8.1.1倒排索引概述219
8.1.2索引结构220
8.1.3构建过程222
8.1.4排序规则223
8.1.5索引压缩224
8.1.6更新策略230
8.2分布式存储230
8.2.1存储划分方式231
8.2.2存储平衡策略232
8.3存储索引237
8.3.1二叉搜索树238
8.3.2B树239
8.3.3B+树241
8.3.4B+树与文件索引242
8.4字典树索引244
8.4.1字典树索引概述245
8.4.2字典树索引构建247
8.4.3字典树查询优化249
8.5本章小结250
第9章搜索服务构建251
9.1概述251
9.1.1体系结构251
9.1.2七何分析法252
9.1.3搜索语法253
9.1.4相关性排序255
9.1.5不安全信息过滤259
9.2大数据分布式缓存263
9.2.1缓存结构设计263
9.2.2缓存更新策略264
9.3文本纠错算法265
9.3.1中文文本纠错265
9.3.2英文文本纠错269
9.4结果显示算法270
9.4.1动态摘要271
9.4.2关键词高亮算法274
9.4.3网页快照278
9.5搜索智能提示278
9.6网页排序282
9.6.1基于PageRank的网页重要性评价282
9.6.2基于HITS算法的网页权威性评价285
9.6.3HillTop算法287
9.6.4网页作弊评价288
9.6.5网页排序调试291
9.7个性化搜索292
9.7.1个性化搜索示例292
9.7.2BP神经网络与个性化搜索293
9.7.3地理位置搜索294
9.8图片搜索299
9.8.1基于内容的图片搜索299
9.8.2基于文本的图片搜索300
9.9搜索与广告302
9.9.1广告投放策略303
9.9.2基于User-Based协同过滤的广告投放303
9.9.3基于Item-Based协同过滤的广告投放305
9.9.4基于混合模式的广告投放306
9.9.5广告投放评价307
9.10搜索引擎评价310
9.10.1搜索引擎评价概述310
9.10.2基于准确率、召回率及F值评价311
9.10.3归一化折扣累计增益313
9.11本章小结316
第10章基于用户日志的反馈学习318
10.1基于用户搜索词语的分析318
10.1.1发现搜索词的价值319
10.1.2发现不明意图下的用户行为320
10.2基于用户点击日志的分析321
10.2.1时间与搜索意图的关系321
10.2.2地理位置与搜索意图的关系322
10.2.3点击日志与同义词324
10.2.4点击日志与词语权重325
10.2.5点击日志与新词分类326
10.2.6点击日志与知识图谱328
10.2.7点击日志与网页重排序329
10.2.8点击日志与网页评价331
10.3基于用户的特征分析332
10.3.1用户跟踪333
10.3.2用户群体特征334
10.3.3用户个体特征336
10.4本章小结337
致谢338
前言/序言
搜索引擎本身作为一门综合性的互联网技术,在行业中一直具备较高的关注度。随着近几年大数据的发展,人们对于搜索引擎的关注度越来越高,原因在于搜索引擎技术是大数据应用的前沿领域,也是最容易产生价值的大数据应用。大数据存储、大数据计算都是从搜索引擎中衍生出来的新领域。目前,搜索引擎技术的发展不仅以大数据为基础,还利用分布式实时计算对数据进行高性能处理,以及利用机器学习将数据变得更具价值,在行业中吸引了搜索研发工程师、算法研发工程师、大数据分析工程师、自然语言处理工程师、计算平台架构师、数据挖掘工程师等各类精英的关注,这些工程师占据了整个互联网研发体系的50%~60%,而在BAT中,甚至超过60%的工作人员是研发人员。
这类群体的薪资水平处于互联网研发人员薪资水平的较高位。猎聘网公布的数据显示,北京地区搜索引擎研发工程师的年薪为35万~60万元,大数据工程师的年薪为20万~25万元,大数据架构师的年薪为40万~70万元。也正是由于薪资水平处于较高位,所以很多互联网相关从业者也积极关注大数据搜索引擎领域的动态。
《大数据搜索引擎原理分析》通过介绍大数据下的自然语言处理框架、大数据存储引擎、搜索引擎的分布式实时计算、高性能可扩展爬虫,以及利用大数据构建知识图谱、基于大数据日志的搜索引擎反馈学习等相关内容,不仅使读者对当代搜索引擎研发体系有了一定的认识,还使读者在搜索引擎领域及大数据领域进行深入思考。
《大数据搜索引擎原理分析》特色
《大数据搜索引擎原理分析》以当前搜索引擎主流技术为基础,密切结合前沿技术发展趋势,行文流畅,通俗易懂,由初步的原理性了解到各模块应用示例,并结合分布式存储、实时计算等,向读者提供了一套完整的大数据时代背景下人工智能搜索引擎的解决方案。
(1)内容循序渐进、行文有条有序地介绍搜索引擎知识。
由于充分考虑了不同层次的读者对搜索引擎的理解程度,因此《大数据搜索引擎原理分析》由浅入深的写作方式、独特的技术写作视角符合广大读者对于技术类读物的理解需求,使得读者能够在掌握搜索引擎基础的情况下,不断按照搜索引擎的设计深入理解。
(2)技术前瞻性强,注重最新主流技术在现代搜索引擎中的应用。
《大数据搜索引擎原理分析》充分利用了最新技术发展的应用成果,在自然语言处理的基础上不仅结合大数据分析,还包括分布式计算、机器学习、知识图谱等当前大数据应用与分析处理的主流技术,摒弃了传统过时的研发体系及算法。《大数据搜索引擎原理分析》介绍的相关研发成果在当前甚至在未来3~5年都具有实际意义。
(3)将技术理论与应用范例结合,具备较高的商业实用价值。
《大数据搜索引擎原理分析》内容紧密结合当前一线工程师的研究成果,对众多的技术理论以实际工作经验的方式展示应用效果。《大数据搜索引擎原理分析》介绍的内容也广泛结合工作中的应用示例,并且用搜索引擎工程实践的脉络流程介绍技术要点,使读者能够在短时间内掌握当前搜索引擎研发的技术理论。
《大数据搜索引擎原理分析》结构
《大数据搜索引擎原理分析》按照由浅入深、循序渐进的顺序对现代搜索引擎的原理和实现进行介绍。《大数据搜索引擎原理分析》分为10章,各章的主要内容如下。
第1章通过对搜索引擎的过去、现在、未来的相关概要介绍,以及现代搜索引擎与大数据、人工智能的相互关系,使广大读者能够在了解现代搜索引擎的前提下学习《大数据搜索引擎原理分析》的后续内容。
第2章是对搜索引擎原理与技术的初步分析,从模块方面大致介绍爬虫、索引、缓存、搜索、日志等服务,从技术方面大致介绍自然语言处理、知识图谱、海量数据存储、分布式计算、搜索排序等,目的是使读者对搜索引擎的体系结构、部分技术有一定的认识,便于深入了解后续章节。
第3章从自然语言角度深入分析搜索引擎的原理。自然语言是搜索引擎进行文本处理的基础,其中包括分词、词性标注、语义分析、文档关键词提取、文档核心句提取、文本的分类与聚类等。读者将会从本章中获得当前主流的自然语言处理技术的相关知识。
第4章主要是针对大数据存储引擎的介绍。大数据存储是搜索引擎最先遇到的问题,解决大数据存储问题可以使搜索引擎在数据分析、索引构建、知识图谱构建等方面的工作持续进行。读者将会从本章中了解到大数据存储引擎的架构体系、数据存储模型、数据压缩、负载均衡、数据存储逻辑视图等知识。
第5章介绍了分布式实时计算。由于搜索引擎处理的是海量数据,数据分析必须依靠具有较强数据处理能力的计算平台,因此搜索引擎通过分布式实时计算去处理大数据,并在尽可能短的时间内返回处理结果。读者将会从本章中了解到分布式实时计算设计架构、负载均衡及通信设计等相关知识。
第6章对爬虫进行了深入分析。读者在本章中将会深入理解分布式可扩展爬虫的体系架构,以及对网页如何进行解析,并抽取结构化的数据信息。本章还涉及链接去重、网页去重、广告识别等相关算法的原理。
第7章详细介绍了知识图谱构建。知识图谱是智能化搜索引擎的重要组成部分,利用大数据分析构建较为合理的知识图谱是当前主流的方式。读者将会从本章中深入了解到知识图谱的详细构建过程。
第8章详细分析了索引构建机制。索引的设计与构造是搜索引擎能够进行快速检索的核心要件,本章不仅对倒排索引进行了深入分析,对倒排索引的压缩、分布式存储等也进行了详细介绍。
第9章深入分析了搜索引擎的整个对外服务工作流程,包括大数据分布式缓存、搜索智能提示、个性化搜索、图片搜索、搜索与广告等内容。读者将会从本章中详细了解到文本纠错算法、动态摘要算法、网页排序算法及搜索引擎的评价
体系。
第10章探讨和分析了基于用户日志的反馈学习。用户搜索日志记录了用户与搜索系统交互的整个流程。通过日志挖掘,不仅可以发现用户的自有特征和行为规律,还可以有效地帮助搜索引擎提升性能和效果。日志作为搜索引擎的核心数据之一,促使搜索引擎技术中的各类算法不断向前发展。读者在本章中将学会通过搜索日志分析用户特征、用户的部分搜索意图等。
读者对象
适合对自然语言处理及机器学习应用领域有兴趣的读者。
适合对现代搜索引擎相关算法有兴趣的读者。
适合对大数据分析、数据挖掘应用有兴趣的读者。
适合互联网行业不同层次的从业者。
适合从事搜索引擎优化的网络营销读者。
适合计算机、软件工程等相关专业的读者。