编辑推荐
Python自然语言处理方面的权威之作
快速了解一些概念及基本工作原理的必读
提供丰富英文语料库和代码,方便练习
从输入法联想提示(predictive text)、email过滤到自动文本汇总、机器翻译,大量的语言相关的技术都离不开自然语言处理的支持,而这本书提供了自然语言处理的入门指南。通过本书,你将学到如何编写能处理大量非结构化文本的Python程序。你可以访问具有丰富标注的、涵盖了语言学各种数据结构的数据集,而且你将学习分析书面文档的内容以及结构的主要算法。
通过大量的例子和练习,本书将帮助你:
从非结构化文本中提取信息,无论是猜测主题还是识别“命名实体”;
分析文本的语言学结构,包括语法和语义分析;
访问流行的语言学数据集,包括WordNet和treebanks;
整合从语言学到人工智能等多个领域的技术。
通过使用Python程序设计语言和自然语言工具包(NTLK)的开源库,本书将帮助你增加自然语言处理的实际经验。如果你对开发Web应用、分析多语言的新闻源或编制濒危语言感兴趣,或者只是想要从程序员的视角看人类语言如何运作,你将发现本书不仅有趣而且极其有用。
内容简介
自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究能够实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及所有用计算机对自然语言进行的操作。
《Python自然语言处理》是自然语言处理领域的一本实用入门指南,旨在帮助读者学习如何编写程序来分析书面语言。《Python自然语言处理》基于Python编程语言以及一个名为NLTK的自然语言工具包的开源库,但并不要求读者有Python编程的经验。全书共11章,按照难易程度顺序编排。第1章到第3章介绍了语言处理的基础,讲述如何使用小的Python程序分析感兴趣的文本信息。第4章讨论结构化程序设计,以巩固前面几章中介绍的编程要点。第5章到第7章介绍语言处理的基本原理,包括标注、分类和信息提取等。第8章到第10章介绍了句子解析、句法结构识别和句意表达方法。第11章介绍了如何有效管理语言数据。后记部分简要讨论了NLP领域的过去和未来。
《Python自然语言处理》的实践性很强,包括上百个实际可用的例子和分级练习。《Python自然语言处理》可供读者用于自学,也可以作为自然语言处理或计算语言学课程的教科书,还可以作为人工智能、文本挖掘、语料库语言学等课程的补充读物。
作者简介
Steven Bird是墨尔本大学计算机科学和软件工程系副教授,宾夕法尼亚大学语言学数据联盟高级研究助理。
Ewan Klein是爱丁堡大学信息学院语言技术教授。
Edward Loper是毕业于宾夕法尼亚大学专注于机器学习的自然语言处理方向的博士,现在在波士顿的BBN Technologies担任研究员。
目录
- 第1章 语言处理与Python 1
- 1.1 语言计算:文本和词汇 1
- 1.2 近观Python:将文本当做词链表 10
- 1.3 计算语言:简单的统计 17
- 1.4 回到Python:决策与控制 24
- 1.5 自动理解自然语言 29
- 1.6 小结 35
- 1.7 深入阅读 36
- 1.8 练习 37
- 第2章 获得文本语料和词汇资源 41
- 2.1 获取文本语料库 41
- 2.2 条件频率分布 55
- 2.3 更多关于Python:代码重用 60
- 2.4 词典资源 63
- 2.5 WordNet 72
- 2.6 小结 78
- 2.7 深入阅读 79
- 2.8 练习 80
- 第3章 处理原始文本 84
- 3.1 从网络和硬盘访问文本 84
- 3.2 字符串:最底层的文本处理 93
- 3.3 使用Unicode进行文字处理 100
- 3.4 使用正则表达式检测词组搭配 105
- 3.5 正则表达式的有益应用 109
- 3.6 规范化文本 115
- 3.7 用正则表达式为文本分词 118
- 3.8 分割 121
- 3.9 格式化:从链表到字符串 126
- 3.10 小结 132
- 3.11 深入阅读 133
- 3.12 练习 134
- 第4章 编写结构化程序 142
- 4.1 回到基础 142
- 4.2 序列 147
- 4.3 风格的问题 152
- 4.4 函数:结构化编程的基础 156
- 4.5 更多关于函数 164
- 4.6 程序开发 169
- 4.7 算法设计 175
- 4.8 Python库的样例 183
- 4.9 小结 188
- 4.10 深入阅读 189
- 4.11 练习 189
- 第5章 分类和标注词汇 195
- 5.1 使用词性标注器 195
- 5.2 标注语料库 197
- 5.3 使用Python字典映射词及其属性 206
- 5.4 自动标注 216
- 5.5 N—gram标注 221
- 5.6 基于转换的标注 228
- 5.7 如何确定一个词的分类 230
- 5.8 小结 233
- 5.9 深入阅读 234
- 5.10 练习 235
- 第6章 学习分类文本 241
- 6.1 监督式分类 241
- 6.2 监督式分类的举例 254
- 6.3 评估 258
- 6.4 决策树 263
- 6.5 朴素贝叶斯分类器 266
- 6.6 最大熵分类器 271
- 6.7 为语言模式建模 275
- 6.8 小结 276
- 6.9 深入阅读 277
- 6.10 练习 278
- 第7章 从文本提取信息 281
- 7.1 信息提取 281
- 7.2 分块 284
- 7.3 开发和评估分块器 291
- 7.4 语言结构中的递归 299
- 7.5 命名实体识别 302
- 7.6 关系抽取 306
- 7.7 小结 307
- 7.8 深入阅读 308
- 7.9 练习 308
- 第8章 分析句子结构 312
- 8.1 一些语法困境 312
- 8.2 文法的用途 316
- 8.3 上下文无关文法 319
- 8.4 上下文无关文法分析 323
- 8.5 依存关系和依存文法 332
- 8.6 文法开发 336
- 8.7 小结 343
- 8.8 深入阅读 344
- 8.9 练习 344
- 第9章 建立基于特征的文法 349
- 9.1 文法特征 349
- 9.2 处理特征结构 359
- 9.3 扩展基于特征的文法 367
- 9.4 小结 379
- 9.5 深入阅读 380
- 9.6 练习 381
- 第10章 分析语句的含义 384
- 10.1 自然语言理解 384
- 10.2 命题逻辑 391
- 10.3 一阶逻辑 395
- 10.4 英语语句的语义 409
- 10.5 段落语义层 422
- 10.6 小结 428
- 10.7 深入阅读 429
- 10.8 练习 430
- 第11章 语言数据管理 434
- 11.1 语料库结构:案例研究 434
- 11.2 语料库生命周期 439
- 11.3 数据采集 443
- 11.4 使用XML 452
- 11.5 使用Toolbox数据 459
- 11.6 使用OLAC元数据描述语言资源 463
- 11.7 小结 466
- 11.8 深入阅读 466
- 11.9 练习 467
- 后记 470
- 参考文献 476