Python自然语言处理pdf下载

Python自然语言处理百度网盘pdf下载

作者:
简介:Python自然语言处理
出版社:机械工业出版社
出版时间:2018-08-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介
  本书旨在回答三个问题:第一个,什么是自然语言处理;第二个,为什么大多数人会使用Python来开发自然语言处理应用程序;最后一个也很重要的问题,在学习自然语言处理的时候,有哪些Python相关资源可用。读完本书,读者便会对此了然于胸。
作者简介
  Jalaj Thanaki是一名数据科学领域的研究者和科学家。她喜欢解决和数据科学相关的问题。她希望能够使用数据科学和人工智能技术,让这个世界变得更美好。她的研究兴趣包括自然语言处理、机器学习、深度学习和大数据分析。除了是一名数据科学家之外,Jalaj也是一位社会活动家、旅行家和大自然爱好者。
  我想将这本书献给我的丈夫Shetul Thanaki,因为他给了我持续的支持、鼓励和创造性的建议。
  对我的父母、公婆、家庭成员和朋友致以深深的谢意,他们在我人生的每个阶段提供了强大的帮助。也要感谢这些年遇到的所有导师。还十分感谢技术审校人员在审阅这本书时付出的努力。同时,感谢我现在所在的机构——SME Corner提供的支持。我是很多开源和教育社区的粉丝,所以十分感谢Kaggel、Udacity、Coursera等那些直接或间接帮助我理解数据科学各种概念的社区。如果没有从这些社区中学习知识,我不可能有机会做现在做的事情。
  感谢Packt Publishing和Aman Singh,是他们找我来写这本书。十分感谢Packt编辑团队为了让这本书尽量完美所做的努力。特别要感谢Aman Singh、Jagruti Babaria、Menka Bohra、Manthan Patel、Nidhi Joshi、Sayli Nikalje、Manisha Sinha、Safis和Tania Dutta。
  感谢技术编辑团队、策略和管理团队、市场团队、销售团队、图表设计团队、前期制作团队、后期制作团队、排版团队等所做的努力,是他们让我的写作之旅更顺利。
  我非常愿意将我的知识传递给那些想要学习的人。
  祝读者有一个振奋和愉快的阅读之旅!
目录
版权信息
译者序
推荐序
关于审校人员
前言
第1章 引言
1.1 自然语言处理
1.2 基础应用
1.3 高级应用
1.4 NLP和Python相结合的优势
1.5 nltk环境搭建
1.6 读者提示
1.7 总结
第2章 实践理解语料库和数据集
2.1 语料库
2.2 语料库的作用
2.3 语料分析
2.4 数据属性的类型
2.5 不同文件格式的语料
2.6 免费语料库资源
2.7 为NLP应用准备数据集
2.8 网页爬取
2.9 总结
第3章 理解句子的结构
3.1 理解NLP的组成
3.2 上下文无关文法
3.3 形态分析
3.4 词法分析
3.5 句法分析
3.6 语义分析
3.7 消歧
3.8 篇章整合
3.9 语用分析
3.10 总结
第4章 预处理
4.1 处理原始语料库文本
4.2 处理原始语料库句子
4.3 基础预处理
4.4 实践和个性化预处理
4.5 总结
第5章 特征工程和NLP算法
5.1 理解特征工程
5.2 NLP中的基础特征
5.3 NLP中的基础统计特征
5.4 特征工程的优点
5.5 特征工程面临的挑战
5.6 总结
第6章 高级特征工程和NLP算法
6.1 词嵌入
6.2 word2vec基础
6.3 word2vec模型从黑盒到白盒
6.4 基于表示的分布相似度
6.5 word2vec模型的组成部分
6.6 word2vec模型的逻辑
6.7 word2vec模型背后的算法和数学理论
6.8 神经网络算法
6.9 生成最终词向量和概率预测结果的技术
6.10 word2vec相关的一些事情
6.11 word2vec的应用
6.12 word2vec概念的扩展
6.13 深度学习中向量化的重要性
6.14 总结
第7章 规则式自然语言处理系统
7.1 规则式系统
7.2 规则式系统的目的
7.3 规则式系统的架构
7.4 规则式系统的开发周期
7.5 规则式系统的应用
7.6 使用规则式系统来开发NLP应用
7.7 规则式系统与其他方法的对比
7.8 规则式系统的优点
7.9 规则式系统的缺点
7.10 规则式系统面临的挑战
7.11 词义消歧的基础
7.12 规则式系统近期发展的趋势
7.13 总结
第8章 自然语言处理中的机器学习方法
8.1 机器学习的基本概念
8.2 自然语言处理应用的开发步骤
8.3 机器学习算法和其他概念
8.4 自然语言处理中的混合方法
8.5 总结
第9章 NLU和NLG问题中的深度学习
9.1 人工智能概览
9.2 NLU和NLG之间的区别
9.3 深度学习概览
9.4 神经网络基础
9.5 实现神经网络
9.6 深度学习和深度神经网络
9.7 深度学习技术和NLU
9.8 深度学习技术和NLG
9.9 基于梯度下降的优化
9.10 人工智能与人类智能
9.11 总结
第10章 高级工具
10.1 使用Apache Hadoop作为存储框架
10.2 使用Apache Spark作为数据处理框架
10.3 使用Apache Flink作为数据实时处理框架
10.4 Python中的可视化类库
10.5 总结
第11章 如何提高你的NLP技能
11.1 开始新的NLP职业生涯
11.2 备忘列表
11.3 确定你的领域
11.4 通过敏捷的工作来实现成功
11.5 NLP和数据科学方面一些有用的博客
11.6 使用公开的数据集
11.7 数据科学领域需要的数学知识
11.8 总结
第12章 安装指导
12.1 安装Python、pip和NLTK
12.2 安装PyCharm开发环境
12.3 安装依赖库
12.4 框架安装指导
12.5 解决你的疑问
12.6 总结
前言
  前言
  本书的名字会给你带来广阔的联想。作为读者,你会从头学习关于自然语言处理的方方面面。本书用了非常简单的语言来具体阐述NLP中的概念,许多真实有趣的实用样例会加深你对该领域的理解。通过实现这些样例,能提升你的NLP技能。
  现在,我来回答一些经常会被问起的NLP领域的问题。这些问题启发了我来写这样一本书。对我来说,让所有读者能够理解我写这本书的初衷,是一件非常重要的事情。
  第一个经常被问起的问题是:什么是自然语言处理?第二个是:为什么在开发自然语言处理程序时主要会用Python呢?最后一个重要的问题是:在学习自然语言处理的时候,有哪些资源可用?现在,让我们来看一下答案!
  第一个问题的答案是,自然语言,简单来说,就是你所说的、写的、读的或理解的人类自然的语言,同时是交流的媒介。我们使用计算机算法、数学概念、统计技术来处理这些语言,使得机器能够像人一样理解。
  现在来回答第二个问题。最简单和直接的原因是Python有大量的库,这些库在你开发自然语言处理应用程序的时候,会让事情变得简单。第二个原因是,如果你有C或是C++的编程经验,你不用再担心会遇到内存泄漏的问题。Python的解释器会为你解决这个问题,你要做的仅仅是关注主要的编程过程。除此之外,Python是一个程序员友好的语言,与其他面向对象的语言比起来,你只需要写少量的代码就可以做更多的事情。因此,所有的这些事实都驱动着人们使用Python来开发自然语言处理应用程序以及其他数据科学相关的应用,以进行更快的建模。
  最后一个问题对我来说很重要,因为我经常向朋友解释上面的答案,他们听完后会想学Python,但是有哪些可用的资源呢?我通常会推荐一些书籍、博客、YouTube上的视频,还有Udacity、Coursera等教育平台。但是几天以后,他们还会来问我有没有一个单一的学习资源——书籍或博客。不幸的是,答案是否定的。在那个时刻,我意识到兼顾所有这些资源对他们来说是比较困难的事情。这种痛苦的领悟成了我写作这本书的动力。
  所以在这本书里,我尝试着覆盖大多数自然语言处理中的必要知识,这些对每个人来说都是有用的。一个好消息是我提供了很多实用的Python样例,这样读者便既能从理论角度,也能从应用角度出发理解这些概念。阅读、理解、编码是这本书的三个主要部分,会帮助读者轻松学习。
  本书内容
  第1章提供了对自然语言处理和自然语言处理领域其他分支的介绍。我们会看到构建自然语言处理应用程序的各个阶段,并讨论nltk安装的问题。
  第2章展示了语料分析的各个方面。我们将会看到不同类型的语料和语料中展现的数据属性,会接触到各种语料格式,像CSV、JSON、XML、LibSVM等。还会看到关于网页爬取的样例。
  第3章会帮助你理解自然语言里面最基本的东西,也就是语言学。我们会看到词法分析、句法分析、语义分析、消歧等诸多概念。也会使用nltk来实际地理解这些概念。
  第4章会帮助你弄懂各种不同类型的预处理技术以及该怎样定制它们。我们将会看到预处理的各个阶段,像数据准备、数据处理、数据转换。除了这些,你还会从实际应用的角度来理解预处理。
  第5章是自然语言处理应用程序里最核心的部分。我们会看到不同的算法和工具是怎样用于生成机器学习算法的输入的,它们会被用来开发自然语言处理应用程序。我们也会理解特征工程里的统计概念,然后会对这些工具和算法进行定制化开发。
  第6章会让你理解处理语义问题时遇到的自然语言处理概念。我们会看到word2vec、doc2vec、GloVe等,以及从《权力的游戏》数据集中获得向量的一些word2vec的实际应用。
  第7章会给出很多构建一个规则式系统的细节,以及开发类似自然语言处理系统时,需要牢记的方方面面。我们会看到制定规则的过程和编码规则的过程,也会看到怎样开发一个基于模板的聊天机器人。
  第8章会提供给你一些新的机器学习技术。我们会看到用于开发自然语言处理应用程序的各种机器学习算法,也会使用机器学习方法实现一些强大的自然语言处理应用程序。
  第9章会介绍人工智能的很多方面。我们将会看到人工神经网络的基本概念,以及如何才能构建一个人工神经网络。我们将会理解深度学习的核心,研究深度学习的数学原理,并看一下深度学习是怎样用来做自然语言理解和自然语言生成的。你可以在这里看到很多有意思的实践样例。
  第10章会简单介绍一些框架,像Apache Hadoop、Apache Spark和Apache Flink。
  第11章会介绍怎样提高NLP技能。
  第12章会介绍针对必要程序的安装指导。
  预备知识
  下面来说一下阅读这本书的预备知识。不用紧张,这里不涉及数学或统计学知识,仅仅是Python的基本编程语法。除了这些之外,你需要在计算机上安装Python 2.7.X或Python 3.5.X。推荐你使用任意的Linux系统。
  Python的一些依赖列表可以在如下链接找到:https://github.com/jalajthanaki/NLPython/blob/master/pip-requirements.txt.
  现在来看一下所需的硬件条件。有4GB内存和双核CPU的电脑足够执行普通代码,但是对于机器学习和深度学习样例,你可能需要更多的内存(8GB或16GB)和GPU计算资源。
  本书的读者对象
  本书面向想应用NLP技术来使他们的应用程序更智能的Python开发者,可作为入门NLP领域的资料。
  下载样例源码
  本书的代码在GitHub网站上可找到:https://github.com/PacktPublishing/Python-Natural-Language-Processing。另外还有一些拓展资源和视频可以在如下地址找到:https://github.com/PacktPublishing/。
  另外,读者还可在华章公司官网//www.hzbook.com/上搜索本书,下载源代码。
  代码文件下载完以后,确保你的解压工具是可用的:
  ●WinRAR/7-Zip在Windows系统下
  ●Zipeg/iZip/UnRar在Mac系统下
  ●7-Zip/PeaZip在Linux系统下
精彩书摘
  本章简要介绍自然语言处理(Natural Language Processing,NLP)任务及其相关概念在实际人工智能应用中的使用。我们将重点关注用于开发NLP应用的Python编程范式,并在之后为读者提供一个提示。如果你有兴趣了解NLP的各种编程范式的比较,以及为什么Python是最好的编程范式,那么应该阅读本书的前言。作为专业人士,我曾尝试过大部分的NLP编程范式,也使用Java、R和Python编写过NLP应用。因此相信我,在开发NLP应用程序时,Python相当简单和高效。
  本章将涵盖如下内容:
  ●自然语言处理
  ●基础应用
  ●高级应用
  ●NLP和Python相结合的优势
  ●nltk环境搭建
  ●读者提示
  在近几年中,人工智能(AI)的分支科学引起了很多轰动,包括数据科学、数据分析、预测性分析、NLP等。
  正如本书前言中提到的,我们关注的是Python和自然语言处理。考虑以下几个问题——你真的知道什么是自然语言吗?什么是自然语言处理?使用自然语言处理中的各种概念构建专家系统还涉及哪些分支科学?如何使用自然语言处理概念构建智能系统?
  什么是自然语言?
  ●人类通过语言表达自身的想法或感受。
  ●人类听、说、读或写的内容几乎都以自然语言的形式呈现和表达。
  ●如:
  ■本书的内容是自然语言;
  ■日常生活中听、说和写的内容都以自然语言的形式存在;
  ■电影对白是自然语言;
  ■WhatsApp聊天也是自然语言的一种表现形式。
  什么是自然语言处理(NLP)?
  ●NLP是AI的分支科学。举一个例子,假设你要制造一台使用自然语言和人交互的机器,这种智能系统需要使用计算技术和计算语言学理论来构建,系统像人类一样处理自然语言。
  ●可以将上述的NLP概念和来自世界顶级科技公司的NLP产品关联起来,比如谷歌的谷歌语音助手、苹果的Siri等。
  ●NLP的定义如下:
  ■自然语言处理使用计算技术和(或)计算语言学处理人类自然语言;
  ■自然语言处理是计算机科学、人工智能和计算语言学的相关领域,它涉及计算机和人类自然语言的交互;
  ■自然语言处理可定义为对人类自然语言的自动(或半自动)处理。
  图1.1展示了使用各种NLP概念构造专家系统时涉及的其他分支科学。
精彩插图