文本处理是目前互联网内容应用(如搜索引擎、推荐引擎)的关键技术。本书涵盖了文本处理概念和技术的多个方面,包括文本预处理、搜索、字符串匹配、信息抽取、命名实体识别、分类、聚类、标签生成、摘要、问答等。本书的特点在于通过实例来理解文本处理的这些概念和技术,读者利用现有的开源工具就可以自己实现这些实例。
第1章 开始驾驭文本 ...............................................................................1
1.1 驾驭文本重要的原因 ...............................................................................................2
1.2 预览:一个基于事实的问答系统 ...........................................................................4
1.2.1 嗨,弗兰肯斯坦医生 ...................................................................................5
1.3 理解文本很困难 .......................................................................................................8
1.4 驾驭的文本 .............................................................................................................11
1.5 文本及智能应用:搜索及其他 .............................................................................13
1.5.1 搜索和匹配 .................................................................................................13
1.5.2 抽取信息 .....................................................................................................14
1.5.3 对信息分组 .................................................................................................15
1.5.4 一个智能应用 .............................................................................................15
1.6 小结 .........................................................................................................................15
1.7 相关资源 .................................................................................................................16
第2章 驾驭文本的基础 ..........................................................................17
2.1 语言基础知识 .........................................................................................................18
2.1.1 词语及其类别 .............................................................................................19
2.1.2 短语及子句 .................................................................................................20
2.1.3 词法 .............................................................................................................21
2.2 文本处理常见工具 .................................................................................................23
2.2.1 字符串处理工具 .........................................................................................23
2.2.2 词条及切词 .................................................................................................23
2.2.3 词性标注 .....................................................................................................25
2.2.4 词干还原 .....................................................................................................27
2.2.5 句子检测 .....................................................................................................29
2.2.6 句法分析和文法 .........................................................................................31
2.2.7 序列建模 .....................................................................................................33
2.3 从常见格式文件中抽取内容并做预处理 .............................................................34
2.3.1 预处理的重要性 .........................................................................................35
2.3.2 利用Apache Tika抽取内容 ........................................................................37
2.4 小结 .........................................................................................................................39
2.5 相关资源 .................................................................................................................40
第3章 搜索 ............................................................................................41
3.1 搜索和多面示例:Amazon.com ............................................................................42
3.2 搜索概念入门 .........................................................................................................44
3.2.1 索引内容 .....................................................................................................45
3.2.2 用户输入 .....................................................................................................47
3.2.3 利用向量空间模型对文档排名 .................................................................51
3.2.4 结果展示 .....................................................................................................54
3.3 Apache Solr搜索服务器介绍 .................................................................................57
3.3.1 首次运行Solr ..............................................................................................58
3.3.2 理解Solr中的概念 ......................................................................................59
3.4 利用Apache Solr对内容构建索引 .........................................................................63
3.4.1 使用XML构建索引 ....................................................................................64
3.4.2 利用Solr和Apache Tika对内容进行抽取和索引 ......................................66
3.5 利用Apache Solr来搜索内容 .................................................................................69
3.5.1 Solr查询输入参数 ......................................................................................71
3.5.2 抽取内容的多面展示 .................................................................................74
3.6 理解搜索性能因素 .................................................................................................77
3.6.1 数量判定 .....................................................................................................77
3.6.2 判断数量 .....................................................................................................81
3.7 提高搜索性能 .........................................................................................................82
3.7.1 硬件改进 .....................................................................................................82
3.7.2 分析的改进 .................................................................................................83
3.7.3 提高查询性能 .............................................................................................85
3.7.4 其他评分模型 .............................................................................................88
3.7.5 提升Solr性能的技术 ..................................................................................89
3.8 其他搜索工具 .........................................................................................................91
3.9 小结 .........................................................................................................................93
3.10 相关资源 ...............................................................................................................93
第4章 模糊字符串匹配 ..........................................................................94
4.1 模糊字符串匹配方法 .............................................................................................96
4.1.1 字符重合度度量方法 .................................................................................96
4.1.2 编辑距离 .....................................................................................................99
4.1.3 n元组编辑距离 .........................................................................................102
4.2 寻找模糊匹配串 ...................................................................................................105
4.2.1 在Solr中使用前缀来匹配 ........................................................................105
4.2.2 利用trie树进行前缀匹配 .........................................................................106
4.2.3 使用n元组进行匹配 ..................................................................................111
4.3 构建模糊串匹配应用 ...........................................................................................112
4.3.1 在搜索中加入提前输入功能 ...................................................................113
4.3.2 搜索中的查询拼写校正 ...........................................................................117
4.3.3 记录匹配 ...................................................................................................122
4.4 小结 .......................................................................................................................127
4.5 相关资源 ...............................................................................................................128
第5章 命名实体识别 ...........................................................................129
5.1 命名实体的识别方法 ...........................................................................................131
5.1.1 基于规则的实体识别 ...............................................................................131
5.1.2 基于统计分类器的实体识别 ...................................................................132
5.2 基于OpenNLP的基本实体识别 ...........................................................................133
5.2.1 利用OpenNLP寻找人名 ...........................................................................134
5.2.2 OpenNLP识别的实体解读 .......................................................................136
5.2.3 基于概率过滤实体 ...................................................................................137
5.3 利用OpenNLP进行深度命名实体识别 ...............................................................137
5.3.1 利用OpenNLP识别多种实体类型 ...........................................................138
5.3.2 OpenNLP识别实体的背后机理 ...............................................................141
5.4 OpenNLP的性能 ...................................................................................................143
5.4.1 结果的质量 ...............................................................................................144
5.4.2 运行性能 ...................................................................................................145
5.4.3 OpenNLP的内存使用 ...............................................................................146
5.5 对新领域定制OpenNLP实体识别 .......................................................................147
5.5.1 训练模型的原因和方法 ...........................................................................147
5.5.2 训练OpenNLP模型 ...................................................................................148
5.5.3 改变建模输入 ...........................................................................................150
5.5.4 对实体建模的新方法 ...............................................................................152
5.6 小结 .......................................................................................................................154
5.7 进一步阅读材料 ...................................................................................................155
第6章 文本聚类 ..................................................................................156
6.1 Google News中的文档聚类 .................................................................................157
6.2 聚类基础 ...............................................................................................................158
6.2.1 三种聚类的文本类型 ...............................................................................158
6.2.2 选择聚类算法 ...........................................................................................160
6.2.3 确定相似度 ...............................................................................................161
6.2.4 给聚类结果打标签 ...................................................................................162
6.2.5 聚类结果的评估 .......................................................................................163
6.3 搭建一个简单的聚类应用 ...................................................................................165
6.4 利用Carrot2对搜索结果聚类 ...............................................................................166
6.4.1 使用Carrot2API ........................................................................................166
6.4.2 使用Carrot2对Solr的搜索结果聚类 ........................................................168
6.5 利用Apache Mahout对文档集聚类 ......................................................................171
6.5.1 对聚类的数据进行预处理 .......................................................................172
6.5.2 K-means聚类 ............................................................................................175
6.6 利用Apache Mahout进行主题建模 ......................................................................180
6.7 考察聚类性能 .......................................................................................................183
6.7.1 特征选择与特征约简 ...............................................................................183
6.7.2 Carrot2的性能和质量 ...............................................................................186
6.7.3 Mahout基准聚类算法 ..............................................................................187
6.8 致谢 .......................................................................................................................192
6.9 小结 .......................................................................................................................192
6.10 参考文献 .............................................................................................................193
第7章 分类及标注 ...............................................................................195
7.1 分类及归类概述 ...................................................................................................197
7.2 分类过程 ...............................................................................................................200
7.2.1 选择分类机制 ...........................................................................................201
7.2.2 识别文本分类中的特征 ...........................................................................202
7.2.3 训练数据的重要性 ...................................................................................203
7.2.4 评估分类器性能 .......................................................................................206
7.2.5 将分类器部署到生产环境 .......................................................................208
7.3 利用Apache Lucene构建文档分类器 ..................................................................209
7.3.1 利用Lucene对文本进行分类 ...................................................................210
7.3.2 为MoreLikeThis分类器准备训练数据 ....................................................212
7.3.3 训练MoreLikeThis分类器 ........................................................................214
7.3.4 利用MoreLikeThis分类器对文档进行分类 ............................................217
7.3.5 测试MoreLikeThis分类器 ........................................................................220
7.3.6 将MoreLikeThis投入生产环境 ................................................................223
7.4 利用Apache Mahout训练朴素贝叶斯分类器 ......................................................223
7.4.1 利用朴素贝叶斯算法进行文本分类 .......................................................224
7.4.2 准备训练数据 ...........................................................................................225
7.4.3 留存测试数据 ...........................................................................................229
7.4.4 训练分类器 ...............................................................................................229
7.4.5 测试分类器 ...............................................................................................231
7.4.6 改进自举过程 ...........................................................................................232
7.4.7 将Mahout贝叶斯分类器集成到Solr ........................................................234
7.5 利用OpenNLP进行文档分类 ...............................................................................238
7.5.1 回归模型及最大熵文档分类 ...................................................................239
7.5.2 为最大熵文档分类器准备训练数据 .......................................................241
7.5.3 训练最大熵文档分类器 ...........................................................................242
7.5.4 测试最大熵文档分类器 ...........................................................................248
7.5.5 生产环境下的最大熵文档分类器 ...........................................................249
7.6 利用Apache Solr构建标签推荐系统 ...................................................................250
7.6.1 为标签推荐收集训练数据 .......................................................................253
7.6.2 准备训练数据 ...........................................................................................255
7.6.3 训练Solr标签推荐系统 ............................................................................256
7.6.4 构建推荐标签 ...........................................................................................258
7.6.5 对标签推荐系统进行评估 .......................................................................261
7.7 小结 .......................................................................................................................263
7.8 参考文献 ...............................................................................................................265
第8章 构建示例问答系统 ....................................................................266
8.1 问答系统基础知识 ...............................................................................................268
8.2 安装并运行QA代码 .............................................................................................270
8.3 一个示例问答系统的架构 ...................................................................................271
8.4 理解问题并产生答案 ...........................................................................................274
8.4.1 训练答案类型分类器 ...............................................................................275
8.4.2 对查询进行组块分析 ...............................................................................279
8.4.3 计算答案类型 ...........................................................................................280
8.4.4 生成查询 ...................................................................................................283
8.4.5 对候选段落排序 .......................................................................................285
8.5 改进系统的步骤 ...................................................................................................287
8.6 本章小结 ...............................................................................................................287
8.7 相关资源 ...............................................................................................................288
第9章 未驾驭的文本:探索未来前沿 ..................................................289
9.1 语义、篇章和语用:探索高级NLP ....................................................................290
9.1.1 语义 ...........................................................................................................291
9.1.2 篇章 ...........................................................................................................292
9.1.3 语用 ...........................................................................................................294
9.2 文档及文档集自动摘要 .......................................................................................295
9.3 关系抽取 ...............................................................................................................298
9.3.1 关系抽取方法综述 ...................................................................................299
9.3.2 评估 ...........................................................................................................302
9.3.3 关系抽取工具 ...........................................................................................303
9.4 识别重要内容和人物 ...........................................................................................303
9.4.1 全局重要性及权威度 ...............................................................................304
9.4.2 个人重要性 ...............................................................................................305
9.4.3 与重要性相关的资源及位置 ...................................................................306
9.5 通过情感分析来探测情感 ...................................................................................306
9.5.1 历史及综述 ...............................................................................................307
9.5.2 工具及数据需求 .......................................................................................308
9.5.3 一个基本的极性算法 ...............................................................................309
9.5.4 高级话题 ...................................................................................................311
9.5.5 用于情感分析的开源库 ...........................................................................312
9.6 跨语言检索 ...........................................................................................................313
9.7 本章小结 ...............................................................................................................315
9.8 相关资源 ...............................................................................................................315
Windows 7使用详解 本书特色 《Windows 7 使用详解》由众多Windows技术专家倾力推荐。Windows 7使用详解 内容简介 本书由微软*有...
《素与练》内容简介:衣服是我们面对世界的表情。这是一本给普通人的日常美学穿搭书。皆川明说:“世界上有许多无法以“流行”二字
Java 7 编程高级进阶 本书特色 《java7编程高级进阶》包含了众多专家级编程技术,学习这些技术可以让你的java水平上升至一个新的台阶。借助真实环境下的...
《创业法律900问》内容简介:作者以问答形式向在市场中拼搏的创业者介绍了我国公司法、合伙企业法、合同法、票据法、外资企业法、知
本书作为Java程序的入门与应用教材,共分为3部分:第一部分讲解Java程序设计的基础知识,包括Java基本编程语言、面向对象设计思想
《杜甫的五城》内容简介:本书是作者在20世纪80年代末至90年代初九次在中国大陆旅行的记录。作者赖瑞和是海外研究唐代历史的知名学
《Docker从入门到实战》内容简介:本书从Docker的相关概念与基础知识讲起,结合实际应用,通过不同开发环境的实战例子,详细介绍了
《日不落家》内容简介:《日不落家》是余光中第四本纯散文集,共收二十一篇文章,是他晚年的珍贵创作。文有短到几百字的俏皮小品《
BuildingResponsiveWebApplicationswithAJAXandPHPisthemostpracticalandefficientres...
《让灯守着我:戴望舒传》内容简介:本书是著名诗人戴望舒的传记作品。戴望舒曾以一首《雨巷》风靡一时。其一生诗歌作品百首不到,
《Webpack+Babel入门与实例详解》内容简介:这是一本针对零基础前端开发者讲解Webpack与Babel使用方法的图书。随着前端工程的不断发
人工智能导论-(第4版) 本书特色 《人工智能导论(第4版)》是一本基础性强、可读性好、适合讲授的人工智能教材。读者通过学习《人工智能导论(第4版)》,能够掌握...
本书是由国内资深网页设计师凝聚8年设计配色经验精心编著而成的。全分为网页界面设计、网页版式布局、网页色彩搭配、网页版式与色
Everystageinthedesignofanewwebsiteisanopportunitytomeetormissdeadlinesandbudgeta...
《柳永词选注》内容简介:柳永(约987年—约1053年),原名三变,字景庄,后改名永,字耆卿,排行第七,又称柳七。宋仁宗朝进士,官
《天神和人》内容简介:本书讲述中西方的神话故事,主要是西方的希腊神话中宇宙体系的构建者和中华文明的古老神话中关于宇宙形成的
《智能风控:原理、算法与工程实践》内容简介:本书以Python作为实现智能风险管理的编程语言,而我个人也十分推崇运用Python分析金
Therelationshipbetweenthebodyandelectronictechnology,extensivelytheorizedthrough...
本书从游戏设计者和玩家的双重角度出发,以大量游戏为例,并结合丰富的配图,从“玩家角色”“敌人角色”“关卡设计”“碰撞检测
《随园食单》内容简介:本书出自乾隆才子、诗坛盟主的袁枚之手,是清代一部非常重要的美食名著。袁枚以随笔的形式,细腻地描摹了乾