首页>参考读物>计算机科学与技术>人工智能

自然语言处理Python进阶
作者 : [印度]克里希纳·巴夫萨(Krishna Bhavsar) 纳雷什·库马尔(Naresh Kumar) 普拉塔普·丹蒂(Pratap Dangeti) 著
译者 : 陈钰枫 译
出版日期 : 2019-01-11
ISBN : 978-7-111-61643-6
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 219
开本 : 16
原书名 : Natural Language Processing with Python Cookbook
原出版社: Packt Publishing Ltd.
属性分类: 店面
包含CD : 无CD
绝版 : 未绝版
图书简介

这本书将从一个实用的角度让你从头开始理解和实现NLP解决方案,将从访问内置数据源和创建自己的数据源开始带你踏上一段旅程。到时候将可以编写复杂的NLP解决方案,包括文本规范化、预处理、词性标注、句法解析等。

图书特色

图书前言

亲爱的读者,感谢你选择本书来开启你的自然语言处理(Natural Language Processing, NLP)之路。本书将从实用的角度带领你由浅入深逐步理解并实现NLP解决方案。我们将从访问内置数据源和创建自己的数据源开始指引你踏上这段旅程。之后你将可以编写复杂的NLP解决方案,包括文本规范化、预处理、词性标注、句法分析等。
在本书中,我们将介绍在自然语言处理中应用深度学习所必需的各种基本原理,它们是目前最先进的技术。我们将使用Keras软件来讨论深度学习的应用。
本书的出发点如下:
内容设计上旨在通过细节分析来帮助新手迅速掌握基本原理。并且,对有经验的专业人员来说,它将更新各种概念,以便更清晰地应用算法来选择数据。
介绍了在NLP中深度学习应用的新趋势。
本书的组织结构
第1章教你使用内置的NLTK语料库和频率分布。我们还将学习什么是WordNet,并探索其特点和用法。
第2章演示如何从各种格式的数据源中提取文本。我们还将学习如何从网络源提取原始文本。最后,我们将从这些异构数据源中对原始文本进行规范并构建语料库。
第3章介绍一些关键的预处理步骤,如分词、词干提取、词形还原和编辑距离。
第4章介绍正则表达式,它是最基本、最简单、最重要和最强大的工具之一。在本章中,你将学习模式匹配的概念,它是文本分析的一种方式,基于此概念,没有比正则表达式更方便的工具了。
第5章将学习如何使用和编写自己的词性标注器和文法规则。词性标注是进一步句法分析的基础,而通过使用词性标记和组块标记可以产生或改进文法规则。
第6章帮助你了解如何使用内置分块器以及训练或编写自己的分块器,即依存句法分析器。在本章中,你将学习评估自己训练的模型。
第7章介绍信息抽取和文本分类,告诉你关于命名实体识别的更多信息。我们将使用内置的命名实体识别工具,并使用字典创建自己的命名实体。我们将学会使用内置的文本分类算法和一些简单的应用实例。
第8章介绍高阶自然语言处理方法,该方法将目前为止你所学的所有课程结合到一起,并创建应对你现实生活中各种问题的适用方法。我们将介绍诸如文本相似度、摘要、情感分析、回指消解等任务。
第9章介绍深度学习应用于自然语言处理所必需的各种基本原理,例如利用卷积神经网络(CNN)和长短型记忆网络(LSTM)进行邮件分类、情感分类等,最后在低维空间中可视化高维词汇。
第10章描述如何利用深度学习解决最前沿的问题,包括文本自动生成、情景数据问答,预测下一个最优词的语言模型以及生成式聊天机器人的开发。
本书需要你做什么
为了成功完成本书的实例,你需要在Windows或Unix操作系统上安装Python 3.x及以上版本,硬件要求:CPU 2.0GHz以上,内存4GB以上。就Python开发的IDE而言,市场上有许多可用的IDE,但我最喜欢的是PyCharm社区版。它是一款由JetBrains开发的免费开源工具,它的技术支持很强大,会定期发布该工具的升级和修正版本,你只要熟悉IntelliJ就能保持学习进度顺畅。
本书假设你已经了解Keras的基本知识和如何安装库。我们并不要求读者已经具备深度学习的知识和数学知识,比如线性代数等。
在本书中,我们使用了以下版本的软件,它们在最新的版本下都能很好地运行:
Anaconda 3 4.3.1 (Anaconda 中包括所有Python及相关包, Python 3.6.1, NumPy 1.12.1, pandas 0.19.2)
Theano 0.9.0
Keras 2.0.2
feedparser 5.2.1
bs4 4.6.0
gensim 3.0.1
本书的读者对象
本书适用于想利用NLP提升现有技能来实现高阶文本分析的数据科学家、数据分析师和数据科学专业人员,建议读者具备自然语言处理的一些基本知识。
本书也适用于对自然语言处理知识毫无了解的新手,或是希望将自己的知识从传统的NLP技术扩展到最先进的深度学习应用技术的有经验的专业人士。
小节
在本书中,有几个标题经常出现(准备工作、如何实现、工作原理、更多、参见)。为了明确说明如何完成一个实例,本书使用了如下内容排布:
准备工作
本节介绍完成实例的预期结果,并说明如何安装所需的软件或初步设置。
如何实现
本节包含完成实例所需遵循的步骤。
工作原理
本节通常对上一节的操作进行详细的解释。
更多
本节包含实例的补充信息,以便读者对实例的实现方法有更多的了解。
参见
本节为实例的其他有用信息提供有效的链接。
约定
在本书中,你会发现许多不同类型信息的文本格式。下面是这些格式的一些范例和它们的含义解释。
任何命令行的输入或输出格式如下:

新术语和重要词以加粗字体显示。
警告或重要提示将跟在这样的符号后面。
提示或小技巧将跟在这样的符号后面。
读者反馈
欢迎读者的反馈。让我们知道你对本书的看法,哪些部分喜欢还是不喜欢。读者反馈对我们来说很重要,因为它有助于我们了解读者真正能从中获益最多的地方。将你的反馈发送到邮箱feedback@packtpub.com即可,并且在你的邮箱标题中提到本书的书名。如果你有一个擅长或是比较感兴趣的话题,可以撰写或投稿书刊,请在www.packtpub.com/authors网站上查看作者指南。
客户支持
既然你是一本Packt书的拥有者,在购买时能够获得很多额外的资源。
示例代码下载
你可以从http://www.packtpub.com通过个人账号下载本书的示例代码文件。如果你在别处购买了本书,可以访问http:// www. packtpub.com/support并进行注册,就可以直接通过邮件方式获得相关文件。你可以按照以下步骤下载代码文件:
1.使用你的电子邮件地址和密码登录或注册到我们的网站;
2.将鼠标指针置于顶部的SUPPORT选项卡上;
3.点击Code Downloads & Errata;
4.在Search框中输入图书的名称;
5.选择你要下载的代码文件的相应图书;
6.从你购买本书的下拉菜单中选择;
7.点击Code Download。
你也可以在Packt出版社网站关于本书的网页上通过点击Code Files按钮来下载代码文件。通过在Search框中输入图书的名称来访问该页面。请注意,你需要登录到你的Packt账户。一旦文件被下载,请确保你使用的是最新版本的工具解压文件夹:
WinRAR/7-Zip for Windows
Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux
本书的代码可从GitHub下载,托管在https://github.com/PacktPublishing/Natural-Language-Processing-with-Python-Cookbook上。其余代码包可以从https://github.com/PacktPublishing/上丰富的图书和视频目录中获取。请检验测试!

上架指导

人工智能\自然语言处理

封底文字

自然语言处理(NLP)是计算机与人类(自然)语言交互的一个领域,涉及计算机科学、人工智能以及计算语言学。特别是,自然语言处理应用了计算机程序设计来处理大规模的自然语言数据。
本书包含的实例可以让你学会使用NLTK(处理NLP任务的主要Python平台)完成自然语言处理的各种任务,涵盖了自然语言理解、自然语言处理和句法分析等。你将学会如何理解语言、处理句子及各种歧义现象;你也将学会如何有效地使用NLTK来进行文本分类、分词及词性标注等多个任务;你还将学会如何分析词汇和句子结构,并掌握句法分析、语义分析、语用分析以及深度学习技术的应用。
读完本书,你将了解使用Python实现自然语言处理的所有内容。
你将学到:
了解NLTK提供的各类可利用的语料资源,以及如何使用WordNet。
学习如何处理原始文本,比如HTML、RSS、PDF和Word文档等。
学习如何利用分词、词干提取和拼写检查等方式对原始文本进行预处理,并学会利用正则表达式实现。
了解正则表达式在文本分析中的基本匹配模式。
学会使用和编写词性标注器与文法。
学会如何实现命名实体抽取和句法分析,比如递归下降句法分析器、shift-reduce分析器和线图分析器等。
使用LSTM技术基于莎士比亚著作生成文本。
使用BABI数据集和LSTM技术对情景记忆建模。
使用深度学习开发生成式聊天机器人。

译者序

当第一次阅读本书的时候,我深感它就是目前寻求自然语言处理和深度学习入门及进阶方法的读者所需要的。
眼下自然语言处理在人工智能世界大放异彩,渴望徜徉其中的读者众多。我在自然语言处理方面有研究基础,此前也翻译过一些该领域的前沿文章,希望这份译本能帮助想通过Python工具深入钻研自然语言处理的读者。
本书是利用Python语言解决自然语言处理多种任务的应用指南,旨在帮助读者快速浏览自然语言处理的全貌,进而掌握自然语言处理各项任务的基本原理,最终快速踏入实践阶段。Python编程语言以其清晰简洁的语法、易用性和可扩展性以及丰富庞大的库深受广大开发者的喜爱。Python内置了非常强大的机器学习代码库和数学库,使它理所当然地成为自然语言处理的开发利器。而其中的NLTK是使用Python处理自然语言数据的领先平台。它为各种语言资源(比如WordNet)提供了简便易用的界面,它还能用于高效完成文本预处理、词性标注、信息抽取和文本分类等多种自然语言处理任务。
值得一提的是,本书特别涵盖了自然语言处理的高阶任务,比如主题识别、指代消解和创建聊天机器人等。本书最后两章介绍了深度学习在自然语言处理中的应用。每一节都大致包含三个部分:准备工作、如何实现和工作原理,对自然语言处理各种任务的方方面面都有所涉及。这意味着,如果读者能够踏实地完成本书中给出的所有实例,就能切实掌握自然语言处理各种任务的基础技术和原理方法,为进一步学习和研究奠定基础。换言之,深入阅读本书,对读者探索深度学习技术在自然语言处理中的应用会有极大帮助。
最后,感谢机械工业出版社华章分社的编辑,是他们的鼓励和支持使得本书中文版能够与读者见面。感谢武文雅和李兴亚等多位研究生的辅助和校对,感谢我的家人的支持。尽管我们努力准确地表达出作者介绍的思想和方法,但仍难免有不当之处。若发现译文中的错误,敬请指出,我们将非常感激,请将相关意见发往chenyf@bjtu.edu.cn。

陈钰枫  
2018年11月

图书目录

译者序
前言
作者简介
审校者简介
第1章 语料库和WordNet 1
1.1 引言 1
1.2 访问内置语料库 1
1.3 下载外部语料库,加载并访问 3
1.4 计算布朗语料库中三种不同类别的特殊疑问词 5
1.5 探讨网络文本和聊天文本的词频分布 7
1.6 使用WordNet进行词义消歧 9
1.7 选择两个不同的同义词集,使用WordNet探讨上位词和下位词的概念 12
1.8 基于WordNet计算名词、动词、形容词和副词的平均多义性 15
第2章 针对原始文本,获取源数据和规范化 17
2.1 引言 17
2.2 字符串操作的重要性 17
2.3 深入实践字符串操作 19
2.4 在Python中读取PDF文件 21
2.5 在Python中读取Word文件 23
2.6 使用PDF、DOCX和纯文本文件,创建用户自定义的语料库 26
2.7 读取RSS信息源的内容 29
2.8 使用BeautifulSoup解析HTML 31
第3章 预处理 34
3.1 引言 34
3.2 分词——学习使用NLTK内置的分词器 34
3.3 词干提取——学习使用NLTK内置的词干提取器 36
3.4 词形还原——学习使用NLTK中的WordnetLemmatizer函数 38
3.5 停用词——学习使用停用词语料库及其应用 40
3.6 编辑距离——编写计算两个字符串之间编辑距离的算法 42
3.7 处理两篇短文并提取共有词汇 44
第4章 正则表达式 50
4.1 引言 50
4.2 正则表达式——学习使用*、+和? 50
4.3 正则表达式——学习使用$和^,以及如何在单词内部(非开头与结尾处)进行模式匹配 52
4.4 匹配多个字符串和子字符串 54
4.5 学习创建日期正则表达式和一组字符集合或字符范围 56
4.6 查找句子中所有长度为5的单词,并进行缩写 58
4.7 学习编写基于正则表达式的分词器 59
4.8 学习编写基于正则表达式的词干提取器 60
第5章 词性标注和文法 63
5.1 引言 63
5.2 使用内置的词性标注器 63
5.3 编写你的词性标注器 65
5.4 训练你的词性标注器 70
5.5 学习编写你的文法 73
5.6 编写基于概率的上下文无关文法 76
5.7 编写递归的上下文无关文法 79
第6章 分块、句法分析、依存分析 82
6.1 引言 82
6.2 使用内置的分块器 82
6.3 编写你的简单分块器 84
6.4 训练分块器 87
6.5 递归下降句法分析 90
6.6 shift-reduce句法分析 93
6.7 依存句法分析和主观依存分析 95
6.8 线图句法分析 97
第7章 信息抽取和文本分类 101
7.1 引言 101
7.2 使用内置的命名实体识别工具 102
7.3 创建字典、逆序字典和使用字典 104
7.4 特征集合选择 109
7.5 利用分类器分割句子 113
7.6 文本分类 116
7.7 利用上下文进行词性标注 120
第8章 高阶自然语言处理实践 124
8.1 引言 124
8.2 创建一条自然语言处理管道 124
8.3 解决文本相似度问题 131
8.4 主题识别 136
8.5 文本摘要 140
8.6 指代消解 143
8.7 词义消歧 147
8.8 情感分析 150
8.9 高阶情感分析 153
8.10 创建一个对话助手或聊天机器人 157
第9章 深度学习在自然语言处理中的应用 163
9.1 引言 163
9.2 利用深度神经网络对电子邮件进行分类 168
9.3 使用一维卷积网络进行IMDB情感分类 175
9.4 基于双向LSTM的IMDB情感分类模型 179
9.5 利用词向量实现高维词在二维空间的可视化 183
第10章 深度学习在自然语言处理中的高级应用 188
10.1 引言 188
10.2 基于莎士比亚的著作使用LSTM技术自动生成文本 188
10.3 基于记忆网络的情景数据问答 193
10.4 使用循环神经网络LSTM进行语言建模以预测最优词 199
10.5 使用循环神经网络LSTM构建生成式聊天机器人 203

教学资源推荐
作者: Sergios Theodoridis Konstantinos Koutroumbas
作者: [澳]迪尔克·P. 克洛泽(Dirk P. Kroese),[澳]兹德拉夫科·I. 波提夫(Zdravko I. Botev),[澳]托马斯·泰姆勒(Thomas Taimre),[澳]拉迪斯拉夫·维斯曼(Radislav Vaisman) 著
作者: [美]理查德·F. 里昂(Richard F. Lyon) 著
参考读物推荐
作者: 申泽邦 雍宾宾 周庆国 李良 李冠憬 编著
作者: 计湘婷 文新 刘倩 李轩涯 编著
作者: [西班牙]伯纳多·朗奎洛·贾蓬(Bernardo Ronquillo Japón) 著
作者: [美] 李崇(Chong Li) 邱美康(Meikang Qiu) 著