Python程序设计:人工智能案例实践
审稿人评论
译者序
前言
作者简介
开始阅读本书之前
部分 Python基础知识快速入门
第1章 Python及大数据概述2
1.1 简介2
1.2 快速回顾面向对象技术的基础知识3
1.3 Python5
查看完整
译者序
前言
作者简介
开始阅读本书之前
部分 Python基础知识快速入门
第1章 Python及大数据概述2
1.1 简介2
1.2 快速回顾面向对象技术的基础知识3
1.3 Python5
查看完整
保罗·戴特尔Deitel&Associates公司首席执行官兼首席技术官,毕业于麻省理工学院,拥有38年的计算经验。保罗是世界上有经验的编程语言培训师之一,自1992年以来一直针对软件开发人员教授专业课程。他服务过的国际客户包括思科、IBM、西门子、Oracle、戴尔、富达、美国国家航空航天局肯尼迪航天中心等。他也是国际上畅销的编程语言经典图书的撰写者,如C How to program、C How to program、Java How to program、Visual C# How to Program,等等。
通过学习本书提供的500多个实际示例,读者将学会使用交互式IPython解释器和Jupyter Notebook并快速掌握Python编码方法。在学习完第1~5章的Python基础知识以及第6和7章的一些关键内容之后,读者将能够处理第11~16章中有关人工智能案例的重要实操内容,包括自然语言处理,用于情感分析的Twitter数据挖掘,使用IBMWatson的认知计算,利用分类和回归进行的有监督机器学习,通过聚类进行的无监督机器学习,基于深度学习和卷积神经网络的计算机视觉,基于递归神经网络的深度学习,基于Hadoop、Spark和NoSQL数据库的大数据处理,物联网等。读者还将直接或间接使用基于云的服务,如Twitter、Google Translate、IBM Watson、Microsoft Azure、OpenMapQuest、PubNub等。
审稿人评论
译者序
前言
作者简介
开始阅读本书之前
部分 Python基础知识快速入门
第1章 Python及大数据概述2
1.1 简介2
1.2 快速回顾面向对象技术的基础知识3
1.3 Python5
1.4 Python库7
1.4.1 Python标准库7
1.4.2 数据科学库8
1.5 试用IPython和Jupyter Notebook9
1.5.1 使用IPython交互模式作为计算器10
1.5.2 使用IPython 解释器执行Python程序11
1.5.3 在Jupyter Notebook中编写和执行代码12
1.6 云和物联网16
1.6.1 云16
1.6.2 物联网17
1.7 大数据有多大18
1.7.1 大数据分析22
1.7.2 数据科学和大数据正在带来改变:用例23
1.8 案例研究:大数据移动应用程序24
1.9 数据科学入门:人工智能——计算机科学与数据科学的交叉学科26
1.10 小结28
第2章 Python程序设计概述29
2.1 简介29
2.2 变量和赋值语句30
2.3 算术运算31
2.4 print函数、单引号和双引号34
2.5 三引号字符串36
2.6 从用户处获取输入37
2.7 决策:if语句和比较运算符39
2.8 对象和动态类型43
2.9 数据科学入门:基础的描述性统计44
2.10 小结46
第3章 控制语句48
3.1 简介48
3.2 控制语句概述49
3.3 if语句49
3.4 if...else和if...elif...else语句50
3.5 while语句53
3.6 for语句54
3.6.1 可迭代对象、列表和迭代器55
3.6.2 内置函数range55
3.7 增强赋值56
3.8 序列控制迭代和格式化字符串56
3.9 边界值控制的迭代57
3.10 内置函数range:深入讨论59
3.11 使用Decimal类型处理货币金额59
3.12 break和continue语句63
3.13 布尔运算符and、or和not63
3.14 数据科学入门:集中趋势度量—均值、中值和众数66
3.15 小结67
第4章 函数69
4.1 简介69
4.2 函数定义70
4.3 多参数函数72
4.4 随机数生成74
4.5 案例研究:一个运气游戏76
4.6 Python标准库79
4.7 math模块中的函数80
4.8 在IPython中使用制表符自动补全81
4.9 默认参数值82
4.10 关键字参数83
4.11 不定长参数列表83
4.12 方法:属于对象的函数84
4.13 作用域规则85
4.14 import:深入讨论87
4.15 向函数传递参数:深入讨论88
4.16 递归91
4.17 函数式编程93
4.18 数据科学入门:离中趋势度量95
4.19 小结96
第5章 序列:列表和元组97
5.1 简介97
5.2 列表98
5.3 元组102
5.4 序列解包104
5.5 序列切片106
5.6 使用del声明108
5.7 将列表传递给函数109
5.8 列表排序110
5.9 序列搜索111
5.10 列表的其他方法113
5.11 使用列表模拟堆栈115
5.12 列表推导式116
5.13 生成器表达式118
5.14 过滤、映射和归约118
5.15 其他的序列处理函数120
5.16 二维列表122
5.17 数据科学入门:模拟和静态可视化124
5.17.1 掷600、60,000、6,000,000次骰子的图例124
5.17.2 实现掷骰子中不同点数出现次数和百分比的可视化126
5.18 小结132
第二部分 Python数据结构、字符串和文件
第6章 字典和集合136
6.1 简介136
6.2 字典137
6.2.1 创建字典137
6.2.2 遍历字典138
6.2.3 基本的字典操作138
6.2.4 字典的keys和values方法140
6.2.5 字典的比较141
6.2.6 示例:学生成绩字典142
6.2.7 示例:单词计数143
6.2.8 字典的update方法144
6.2.9 字典推导式145
6.3 集合146
6.3.1 集合的比较147
6.3.2 集合的数学运算148
6.3.3 集合的可变运算符和方法150
6.3.4 集合推导式151
6.4 数据科学入门:动态可视化151
6.4.1 动态可视化的工作原理152
6.4.2 实现动态可视化154
6.5 小结156
第7章 使用NumPy进行面向数组的编程158
7.1 简介158
7.2 从现有数据创建数组159
7.3 数组属性160
7.4 用特定值填充数组162
7.5 从范围创建数组162
7.6 列表与数组的性能比较:引入%timeit164
7.7 数组运算符165
7.8 NumPy计算方法167
7.9 通用函数168
7.10 索引和切片170
7.11 视图:浅拷贝171
7.12 视图:深拷贝173
7.13 重塑和转置174
7.14 数据科学入门:pandas Series和DataFrame176
7.14.1 Series177
7.14.2 DataFrame181
7.15 小结188
第8章 字符串:深入讨论190
8.1 简介190
8.2 格式化字符串191
8.2.1 表示类型191
8.2.2 字段宽度和对齐方式193
8.2.3 数字格式化193
8.2.4 字符串的format方法194
8.3 拼接和重复字符串195
8.4 去除字符串中的空白字符196
8.5 字符大小写转换196
8.6 字符串的比较运算符197
8.7 查找子字符串197
8.8 替换子字符串199
8.9 字符串拆分和连接199
8.10 字符串测试方法201
8.11 原始字符串202
8.12 正则表达式介绍202
8.12.1 re模块与fullmatch函数203
8.12.2 替换子字符串和拆分字符串207
8.12.3 其他搜索功能、访问匹配207
8.13 数据科学入门:pandas、正则表达式和数据治理210
8.14 小结214
第9章 文件和异常215
9.1 简介215
9.2 文件216
9.3 文本文件处理217
9.3.1 向文本文件中写入数据:with语句的介绍217
9.3.2 从文本文件中读取数据218
9.4 更新文本文件220
9.5 使用JSON进行序列化221
9.6 关注安全:pickle序列化和反序列化224
9.7 关于文件的附加说明224
9.8 处理异常225
9.8.1 被零除和无效输入226
9.8.2 try语句226
9.8.3 在一条except子句中捕获多个异常229
9.8.4 一个函数或方法引发了什么异常229
9.8.5 try子句的语句序列中应该书写什么代码229
9.9 finally子句229
9.10 显式地引发一个异常231
9.11 (选学)堆栈展开和回溯232
9.12 数据科学入门:使用CSV文件234
9.12.1 Python标准库模块csv234
9.12.2 将CSV文件数据读入pandas DataFrame中236
9.12.3 读取泰坦尼克号灾难数据集237
9.12.4 用泰坦尼克号灾难数据集做简单的数据分析238
9.12.5 乘客年龄直方图239
9.13 小结240
第三部分 Python高级主题
第10章 面向对象编程242
10.1 简介242
10.2 自定义Account类244
10.2.1 试用Account类245
10.2.2 Account类的定义246
10.2.3 组合:对象引用作为类的成员248
10.3 属性访问控制248
10.4 用于数据访问的property249
10.4.1 试用Time类249
10.4.2 Time类的定义251
10.4.3 Time类定义的设计说明254
10.5 模拟“私有”属性255
10.6 案例研究:洗牌和分牌模拟257
10.6.1 试用Card类和DeckOfCards类257
10.6.2 Card类:引入类属性258
10.6.3 DeckOfCards类260
10.6.4 利用Matplotlib显示扑克牌图像262
10.7 继承:基类和子类265
10.8 构建继承层次结构:引入多态性267
10.8.1 基类CommissionEmployee267
10.8.2 子类SalariedCommission-Employee270
10.8.3 以多态方式处理Commission-Employee和SalariedComm-issionEmployee273
10.8.4 关于基于对象和面向对象编程的说明274
10.9 鸭子类型和多态性274
10.10 运算符重载276
10.10.1 试用Complex类277
10.10.2 Complex类的定义278
10.11 异常类层次结构和自定义异常279
10.12 具名元组280
10.13 Python 3.7的新数据类简介281
10.13.1 创建Card数据类282
10.13.2 使用Card数据类284
10.13.3 数据类相对于具名元组的优势286
10.13.4 数据类相对于传统类的优势286
10.14 使用文档字符串和doctest进行单元测试286
10.15 命名空间和作用域290
10.16 数据科学入门:时间序列和简单线性回归293
10.17 小结300
第四部分 人工智能、云和大数据案例研究
第11章 自然语言处理304
11.1 简介304
11.2 TextBlob305
11.2.1 创建一个TextBlob对象307
11.2.2 将文本标记为句子和单词307
11.2.3 词性标注308
11.2.4 提取名词短语309
11.2.5 使用TextBlob的默认情感分析器进行情感分析309
11.2.6 使用NaiveBayesAnalyzer进行情感分析310
11.2.7 语言检测与翻译311
11.2.8 变形:复数化和单数化312
11.2.9 拼写检查和拼写校正313
11.2.10 规范化:词干提取和词形还原314
11.2.11 词频314
11.2.12 从WordNet中获取单词定义、同义词和反义词315
11.2.13 删除停用词317
11.2.14 n元318
11.3 使用柱状图和词云可视化词频319
11.3.1 使用pandas可视化词频319
11.3.2 使用词云可视化词频321
11.4 使用Textatistic库进行可读性评估324
11.5 使用spaCy命名实体识别326
11.6 使用spaCy进行相似性检测327
11.7 其他NLP库和工具328
11.8 机器学习和深度学习自然语言应用328
11.9 自然语言数据集329
11.10 小结329
第12章 Twitter数据挖掘331
12.1 简介331
12.2 Twitter API概况333
12.3 创建一个Twitter账户334
12.4 获取Twitter凭据,创建应用程序334
12.5 什么是推文336
12.6 Tweepy339
12.7 通过Tweepy进行Twitter身份验证340
12.8 获取一个Twitter账户的相关信息341
12.9 Tweepy Cursor简介:获得一个账户的关注者和朋友343
12.9.1 确定一个账户的关注者343
12.9.2 确定一个账户的关注对象345
12.9.3 获取一个用户的推文345
12.10 搜索的推文346
12.11 热门话题发现:Twitter热门话题API348
12.11.1 有热门话题的地点348
12.11.2 获取热门话题列表349
12.11.3 根据热门话题创建词云351
12.12 推文分析前的清理或预处理352
12.13 Twitter流API353
12.13.1 创建StreamListener的子类353
12.13.2 启动流处理356
12.14 推文情感分析357
12.15 地理编码和映射361
12.15.1 获取和映射推文362
12.15.2 tweetutilities.py中的实用函数366
12.15.3 LocationListener类367
12.16 存储推文的方法368
12.17 Twitter和时间序列369
12.18 小结369
第13章 IBM Watson和认知计算370
13.1 简介370
13.2 IBM云账户和云控制台372
13.3 Watson服务372
13.4 额外的服务和工具375
13.5 Watson开发者云Python SDK377
13.6 案例研究:旅行者翻译伴侣APP377
13.6.1 准备工作378
13.6.2 运行APP379
13.6.3 SimpleLanguageTranslator.py脚本代码分析380
13.7 Watson资源390
13.8 小结391
第14章 机器学习:分类、回归和聚类392
14.1 简介392
14.1.1 scikit-learn393
14.1.2 机器学习的类别394
14.1.3 scikit-learn中内置的数据集396
14.1.4 典型的数据科学研究的步骤396
14.2 案例研究:用k近邻算法和Digits数据集进行分类(第1部分)397
14.2.1 k近邻算法398
14.2.2 加载数据集399
14.2.3 可视化数据402
14.2.4 拆分数据以进行训练和测试404
14.2.5 创建模型405
14.2.6 训练模型405
14.2.7 预测数字类别406
14.3 案例研究:利用k近邻算法和Digits数据集进行分类(第2部分)407
14.3.1 模型准确性指标407
14.3.2 k折交叉验证410
14.3.3 运行多个模型以找到模型411
14.3.4 超参数调整413
14.4 案例研究:时间序列和简单线性回归413
14.5 案例研究:基于加利福尼亚房价数据集的多元线性回归418
14.5.1 加载数据集418
14.5.2 使用pandas探索数据420
14.5.3 可视化特征422
14.5.4 拆分数据以进行训练和测试426
14.5.5 训练模型426
14.5.6 测试模型427
14.5.7 可视化预测房价和期望房价427
14.5.8 回归模型指标428
14.5.9 选择模型429
14.6 案例研究:无监督学习(第1部分)—降维430
14.7 案例研究:无监督学习(第2部分)—k均值聚类433
14.7.1 加载Iris数据集435
14.7.2 探索Iris数据集:使用pandas进行描述性统计436
14.7.3 使用Seaborn的pairplot可视化数据集438
14.7.4 使用KMeans估计器440
14.7.5 主成分分析降维442
14.7.6 选择聚类估计器444
14.8 小结445
第15章 深度学习447
15.1 简介447
15.1.1 深度学习应用449
15.1.2 深度学习演示450
15.1.3 Keras资源450
15.2 Keras内置数据集450
15.3 自定义Anaconda环境451
15.4 神经网络452
15.5 张量454
15.6 用于视觉的卷积神经网络:使用MNIST数据集进行多分类455
15.6.1 加载MNIST数据集457
15.6.2 数据探索457
15.6.3 数据准备459
15.6.4 创建神经网络模型461
15.6.5 训练和评价模型468
15.6.6 保存和加载模型472
15.7 用TensorBoard可视化神经网络的训练过程473
15.8 ConvnetJS:基于浏览器的深度学习训练和可视化476
15.9 针对序列的递归神经网络:使用IMDb数据集进行情感分析477
15.9.1 加载IMDb影评数据集478
15.9.2 数据探索478
15.9.3 数据准备480
15.9.4 创建神经网络481
15.9.5 训练和评价模型483
15.10 调整深度学习模型484
15.11 在ImageNet上预训练的CNN模型485
15.12 小结486
第16章 大数据:Hadoop、Spark、NoSQL和IoT488
16.1 简介488
16.2 关系数据库和结构化查询语言492
16.2.1 books数据库493
16.2.2 SELECT查询497
16.2.3 WHERE子句497
16.2.4 ORDER BY子句498
16.2.5 从多个表中合并数据:INNER JOIN499
16.2.6 INSERT INTO语句500
16.2.7 UPDATE语句501
16.2.8 DELETE FROM语句502
16.3 NoSQL和NewSQL大数据数据库简述502
16.3.1 NoSQL键-值数据库503
16.3.2 NoSQL文档数据库503
16.3.3 NoSQL列式数据库504
16.3.4 NoSQL图数据库504
16.3.5 NewSQL数据库505
16.4 案例研究:MongoDB JSON文档数据库506
16.4.1 创建MongoDB Atlas集群506
16.4.2 将推文存入MongoDB中507
16.5 Hadoop515
16.5.1 概述516
16.5.2 通过MapReduce汇总Romeo-AndJuliet.txt中的单词长度518
16.5.3 在Microsoft Azure HDInsight中创建Apache Hadoop集群518
16.5.4 Hadoop流520
16.5.5 实现映射器520
16.5.6 实现归约器521
16.5.7 准备运行MapReduce示例522
16.5.8 运行MapReduce作业523
16.6 Spark525
16.6.1 概述525
16.6.2 Docker和Jupyter Docker堆栈526
16.6.3 使用Spark的单词计数529
16.6.4 Microsoft Azure上的Spark单词计数532
16.7 Spark流:使用pyspark-notebookDocker堆栈计算Twitter主题标签535
16.7.1 将推文流式传输到套接字535
16.7.2 总结推文主题标签,介绍Spark SQL538
16.8 物联网和仪表板543
16.8.1 发布和订阅545
16.8.2 使用Freeboard仪表板可视化PubNub示例实时流545
16.8.3 用Python模拟一个连接互联网的恒温器547
16.8.4 使用freeboard.io创建仪表板549
16.8.5 创建一个Python PubNub订阅服务器550
16.9 小结554
索引556
^ 收 起
译者序
前言
作者简介
开始阅读本书之前
部分 Python基础知识快速入门
第1章 Python及大数据概述2
1.1 简介2
1.2 快速回顾面向对象技术的基础知识3
1.3 Python5
1.4 Python库7
1.4.1 Python标准库7
1.4.2 数据科学库8
1.5 试用IPython和Jupyter Notebook9
1.5.1 使用IPython交互模式作为计算器10
1.5.2 使用IPython 解释器执行Python程序11
1.5.3 在Jupyter Notebook中编写和执行代码12
1.6 云和物联网16
1.6.1 云16
1.6.2 物联网17
1.7 大数据有多大18
1.7.1 大数据分析22
1.7.2 数据科学和大数据正在带来改变:用例23
1.8 案例研究:大数据移动应用程序24
1.9 数据科学入门:人工智能——计算机科学与数据科学的交叉学科26
1.10 小结28
第2章 Python程序设计概述29
2.1 简介29
2.2 变量和赋值语句30
2.3 算术运算31
2.4 print函数、单引号和双引号34
2.5 三引号字符串36
2.6 从用户处获取输入37
2.7 决策:if语句和比较运算符39
2.8 对象和动态类型43
2.9 数据科学入门:基础的描述性统计44
2.10 小结46
第3章 控制语句48
3.1 简介48
3.2 控制语句概述49
3.3 if语句49
3.4 if...else和if...elif...else语句50
3.5 while语句53
3.6 for语句54
3.6.1 可迭代对象、列表和迭代器55
3.6.2 内置函数range55
3.7 增强赋值56
3.8 序列控制迭代和格式化字符串56
3.9 边界值控制的迭代57
3.10 内置函数range:深入讨论59
3.11 使用Decimal类型处理货币金额59
3.12 break和continue语句63
3.13 布尔运算符and、or和not63
3.14 数据科学入门:集中趋势度量—均值、中值和众数66
3.15 小结67
第4章 函数69
4.1 简介69
4.2 函数定义70
4.3 多参数函数72
4.4 随机数生成74
4.5 案例研究:一个运气游戏76
4.6 Python标准库79
4.7 math模块中的函数80
4.8 在IPython中使用制表符自动补全81
4.9 默认参数值82
4.10 关键字参数83
4.11 不定长参数列表83
4.12 方法:属于对象的函数84
4.13 作用域规则85
4.14 import:深入讨论87
4.15 向函数传递参数:深入讨论88
4.16 递归91
4.17 函数式编程93
4.18 数据科学入门:离中趋势度量95
4.19 小结96
第5章 序列:列表和元组97
5.1 简介97
5.2 列表98
5.3 元组102
5.4 序列解包104
5.5 序列切片106
5.6 使用del声明108
5.7 将列表传递给函数109
5.8 列表排序110
5.9 序列搜索111
5.10 列表的其他方法113
5.11 使用列表模拟堆栈115
5.12 列表推导式116
5.13 生成器表达式118
5.14 过滤、映射和归约118
5.15 其他的序列处理函数120
5.16 二维列表122
5.17 数据科学入门:模拟和静态可视化124
5.17.1 掷600、60,000、6,000,000次骰子的图例124
5.17.2 实现掷骰子中不同点数出现次数和百分比的可视化126
5.18 小结132
第二部分 Python数据结构、字符串和文件
第6章 字典和集合136
6.1 简介136
6.2 字典137
6.2.1 创建字典137
6.2.2 遍历字典138
6.2.3 基本的字典操作138
6.2.4 字典的keys和values方法140
6.2.5 字典的比较141
6.2.6 示例:学生成绩字典142
6.2.7 示例:单词计数143
6.2.8 字典的update方法144
6.2.9 字典推导式145
6.3 集合146
6.3.1 集合的比较147
6.3.2 集合的数学运算148
6.3.3 集合的可变运算符和方法150
6.3.4 集合推导式151
6.4 数据科学入门:动态可视化151
6.4.1 动态可视化的工作原理152
6.4.2 实现动态可视化154
6.5 小结156
第7章 使用NumPy进行面向数组的编程158
7.1 简介158
7.2 从现有数据创建数组159
7.3 数组属性160
7.4 用特定值填充数组162
7.5 从范围创建数组162
7.6 列表与数组的性能比较:引入%timeit164
7.7 数组运算符165
7.8 NumPy计算方法167
7.9 通用函数168
7.10 索引和切片170
7.11 视图:浅拷贝171
7.12 视图:深拷贝173
7.13 重塑和转置174
7.14 数据科学入门:pandas Series和DataFrame176
7.14.1 Series177
7.14.2 DataFrame181
7.15 小结188
第8章 字符串:深入讨论190
8.1 简介190
8.2 格式化字符串191
8.2.1 表示类型191
8.2.2 字段宽度和对齐方式193
8.2.3 数字格式化193
8.2.4 字符串的format方法194
8.3 拼接和重复字符串195
8.4 去除字符串中的空白字符196
8.5 字符大小写转换196
8.6 字符串的比较运算符197
8.7 查找子字符串197
8.8 替换子字符串199
8.9 字符串拆分和连接199
8.10 字符串测试方法201
8.11 原始字符串202
8.12 正则表达式介绍202
8.12.1 re模块与fullmatch函数203
8.12.2 替换子字符串和拆分字符串207
8.12.3 其他搜索功能、访问匹配207
8.13 数据科学入门:pandas、正则表达式和数据治理210
8.14 小结214
第9章 文件和异常215
9.1 简介215
9.2 文件216
9.3 文本文件处理217
9.3.1 向文本文件中写入数据:with语句的介绍217
9.3.2 从文本文件中读取数据218
9.4 更新文本文件220
9.5 使用JSON进行序列化221
9.6 关注安全:pickle序列化和反序列化224
9.7 关于文件的附加说明224
9.8 处理异常225
9.8.1 被零除和无效输入226
9.8.2 try语句226
9.8.3 在一条except子句中捕获多个异常229
9.8.4 一个函数或方法引发了什么异常229
9.8.5 try子句的语句序列中应该书写什么代码229
9.9 finally子句229
9.10 显式地引发一个异常231
9.11 (选学)堆栈展开和回溯232
9.12 数据科学入门:使用CSV文件234
9.12.1 Python标准库模块csv234
9.12.2 将CSV文件数据读入pandas DataFrame中236
9.12.3 读取泰坦尼克号灾难数据集237
9.12.4 用泰坦尼克号灾难数据集做简单的数据分析238
9.12.5 乘客年龄直方图239
9.13 小结240
第三部分 Python高级主题
第10章 面向对象编程242
10.1 简介242
10.2 自定义Account类244
10.2.1 试用Account类245
10.2.2 Account类的定义246
10.2.3 组合:对象引用作为类的成员248
10.3 属性访问控制248
10.4 用于数据访问的property249
10.4.1 试用Time类249
10.4.2 Time类的定义251
10.4.3 Time类定义的设计说明254
10.5 模拟“私有”属性255
10.6 案例研究:洗牌和分牌模拟257
10.6.1 试用Card类和DeckOfCards类257
10.6.2 Card类:引入类属性258
10.6.3 DeckOfCards类260
10.6.4 利用Matplotlib显示扑克牌图像262
10.7 继承:基类和子类265
10.8 构建继承层次结构:引入多态性267
10.8.1 基类CommissionEmployee267
10.8.2 子类SalariedCommission-Employee270
10.8.3 以多态方式处理Commission-Employee和SalariedComm-issionEmployee273
10.8.4 关于基于对象和面向对象编程的说明274
10.9 鸭子类型和多态性274
10.10 运算符重载276
10.10.1 试用Complex类277
10.10.2 Complex类的定义278
10.11 异常类层次结构和自定义异常279
10.12 具名元组280
10.13 Python 3.7的新数据类简介281
10.13.1 创建Card数据类282
10.13.2 使用Card数据类284
10.13.3 数据类相对于具名元组的优势286
10.13.4 数据类相对于传统类的优势286
10.14 使用文档字符串和doctest进行单元测试286
10.15 命名空间和作用域290
10.16 数据科学入门:时间序列和简单线性回归293
10.17 小结300
第四部分 人工智能、云和大数据案例研究
第11章 自然语言处理304
11.1 简介304
11.2 TextBlob305
11.2.1 创建一个TextBlob对象307
11.2.2 将文本标记为句子和单词307
11.2.3 词性标注308
11.2.4 提取名词短语309
11.2.5 使用TextBlob的默认情感分析器进行情感分析309
11.2.6 使用NaiveBayesAnalyzer进行情感分析310
11.2.7 语言检测与翻译311
11.2.8 变形:复数化和单数化312
11.2.9 拼写检查和拼写校正313
11.2.10 规范化:词干提取和词形还原314
11.2.11 词频314
11.2.12 从WordNet中获取单词定义、同义词和反义词315
11.2.13 删除停用词317
11.2.14 n元318
11.3 使用柱状图和词云可视化词频319
11.3.1 使用pandas可视化词频319
11.3.2 使用词云可视化词频321
11.4 使用Textatistic库进行可读性评估324
11.5 使用spaCy命名实体识别326
11.6 使用spaCy进行相似性检测327
11.7 其他NLP库和工具328
11.8 机器学习和深度学习自然语言应用328
11.9 自然语言数据集329
11.10 小结329
第12章 Twitter数据挖掘331
12.1 简介331
12.2 Twitter API概况333
12.3 创建一个Twitter账户334
12.4 获取Twitter凭据,创建应用程序334
12.5 什么是推文336
12.6 Tweepy339
12.7 通过Tweepy进行Twitter身份验证340
12.8 获取一个Twitter账户的相关信息341
12.9 Tweepy Cursor简介:获得一个账户的关注者和朋友343
12.9.1 确定一个账户的关注者343
12.9.2 确定一个账户的关注对象345
12.9.3 获取一个用户的推文345
12.10 搜索的推文346
12.11 热门话题发现:Twitter热门话题API348
12.11.1 有热门话题的地点348
12.11.2 获取热门话题列表349
12.11.3 根据热门话题创建词云351
12.12 推文分析前的清理或预处理352
12.13 Twitter流API353
12.13.1 创建StreamListener的子类353
12.13.2 启动流处理356
12.14 推文情感分析357
12.15 地理编码和映射361
12.15.1 获取和映射推文362
12.15.2 tweetutilities.py中的实用函数366
12.15.3 LocationListener类367
12.16 存储推文的方法368
12.17 Twitter和时间序列369
12.18 小结369
第13章 IBM Watson和认知计算370
13.1 简介370
13.2 IBM云账户和云控制台372
13.3 Watson服务372
13.4 额外的服务和工具375
13.5 Watson开发者云Python SDK377
13.6 案例研究:旅行者翻译伴侣APP377
13.6.1 准备工作378
13.6.2 运行APP379
13.6.3 SimpleLanguageTranslator.py脚本代码分析380
13.7 Watson资源390
13.8 小结391
第14章 机器学习:分类、回归和聚类392
14.1 简介392
14.1.1 scikit-learn393
14.1.2 机器学习的类别394
14.1.3 scikit-learn中内置的数据集396
14.1.4 典型的数据科学研究的步骤396
14.2 案例研究:用k近邻算法和Digits数据集进行分类(第1部分)397
14.2.1 k近邻算法398
14.2.2 加载数据集399
14.2.3 可视化数据402
14.2.4 拆分数据以进行训练和测试404
14.2.5 创建模型405
14.2.6 训练模型405
14.2.7 预测数字类别406
14.3 案例研究:利用k近邻算法和Digits数据集进行分类(第2部分)407
14.3.1 模型准确性指标407
14.3.2 k折交叉验证410
14.3.3 运行多个模型以找到模型411
14.3.4 超参数调整413
14.4 案例研究:时间序列和简单线性回归413
14.5 案例研究:基于加利福尼亚房价数据集的多元线性回归418
14.5.1 加载数据集418
14.5.2 使用pandas探索数据420
14.5.3 可视化特征422
14.5.4 拆分数据以进行训练和测试426
14.5.5 训练模型426
14.5.6 测试模型427
14.5.7 可视化预测房价和期望房价427
14.5.8 回归模型指标428
14.5.9 选择模型429
14.6 案例研究:无监督学习(第1部分)—降维430
14.7 案例研究:无监督学习(第2部分)—k均值聚类433
14.7.1 加载Iris数据集435
14.7.2 探索Iris数据集:使用pandas进行描述性统计436
14.7.3 使用Seaborn的pairplot可视化数据集438
14.7.4 使用KMeans估计器440
14.7.5 主成分分析降维442
14.7.6 选择聚类估计器444
14.8 小结445
第15章 深度学习447
15.1 简介447
15.1.1 深度学习应用449
15.1.2 深度学习演示450
15.1.3 Keras资源450
15.2 Keras内置数据集450
15.3 自定义Anaconda环境451
15.4 神经网络452
15.5 张量454
15.6 用于视觉的卷积神经网络:使用MNIST数据集进行多分类455
15.6.1 加载MNIST数据集457
15.6.2 数据探索457
15.6.3 数据准备459
15.6.4 创建神经网络模型461
15.6.5 训练和评价模型468
15.6.6 保存和加载模型472
15.7 用TensorBoard可视化神经网络的训练过程473
15.8 ConvnetJS:基于浏览器的深度学习训练和可视化476
15.9 针对序列的递归神经网络:使用IMDb数据集进行情感分析477
15.9.1 加载IMDb影评数据集478
15.9.2 数据探索478
15.9.3 数据准备480
15.9.4 创建神经网络481
15.9.5 训练和评价模型483
15.10 调整深度学习模型484
15.11 在ImageNet上预训练的CNN模型485
15.12 小结486
第16章 大数据:Hadoop、Spark、NoSQL和IoT488
16.1 简介488
16.2 关系数据库和结构化查询语言492
16.2.1 books数据库493
16.2.2 SELECT查询497
16.2.3 WHERE子句497
16.2.4 ORDER BY子句498
16.2.5 从多个表中合并数据:INNER JOIN499
16.2.6 INSERT INTO语句500
16.2.7 UPDATE语句501
16.2.8 DELETE FROM语句502
16.3 NoSQL和NewSQL大数据数据库简述502
16.3.1 NoSQL键-值数据库503
16.3.2 NoSQL文档数据库503
16.3.3 NoSQL列式数据库504
16.3.4 NoSQL图数据库504
16.3.5 NewSQL数据库505
16.4 案例研究:MongoDB JSON文档数据库506
16.4.1 创建MongoDB Atlas集群506
16.4.2 将推文存入MongoDB中507
16.5 Hadoop515
16.5.1 概述516
16.5.2 通过MapReduce汇总Romeo-AndJuliet.txt中的单词长度518
16.5.3 在Microsoft Azure HDInsight中创建Apache Hadoop集群518
16.5.4 Hadoop流520
16.5.5 实现映射器520
16.5.6 实现归约器521
16.5.7 准备运行MapReduce示例522
16.5.8 运行MapReduce作业523
16.6 Spark525
16.6.1 概述525
16.6.2 Docker和Jupyter Docker堆栈526
16.6.3 使用Spark的单词计数529
16.6.4 Microsoft Azure上的Spark单词计数532
16.7 Spark流:使用pyspark-notebookDocker堆栈计算Twitter主题标签535
16.7.1 将推文流式传输到套接字535
16.7.2 总结推文主题标签,介绍Spark SQL538
16.8 物联网和仪表板543
16.8.1 发布和订阅545
16.8.2 使用Freeboard仪表板可视化PubNub示例实时流545
16.8.3 用Python模拟一个连接互联网的恒温器547
16.8.4 使用freeboard.io创建仪表板549
16.8.5 创建一个Python PubNub订阅服务器550
16.9 小结554
索引556
^ 收 起
保罗·戴特尔Deitel&Associates公司首席执行官兼首席技术官,毕业于麻省理工学院,拥有38年的计算经验。保罗是世界上有经验的编程语言培训师之一,自1992年以来一直针对软件开发人员教授专业课程。他服务过的国际客户包括思科、IBM、西门子、Oracle、戴尔、富达、美国国家航空航天局肯尼迪航天中心等。他也是国际上畅销的编程语言经典图书的撰写者,如C How to program、C How to program、Java How to program、Visual C# How to Program,等等。
通过学习本书提供的500多个实际示例,读者将学会使用交互式IPython解释器和Jupyter Notebook并快速掌握Python编码方法。在学习完第1~5章的Python基础知识以及第6和7章的一些关键内容之后,读者将能够处理第11~16章中有关人工智能案例的重要实操内容,包括自然语言处理,用于情感分析的Twitter数据挖掘,使用IBMWatson的认知计算,利用分类和回归进行的有监督机器学习,通过聚类进行的无监督机器学习,基于深度学习和卷积神经网络的计算机视觉,基于递归神经网络的深度学习,基于Hadoop、Spark和NoSQL数据库的大数据处理,物联网等。读者还将直接或间接使用基于云的服务,如Twitter、Google Translate、IBM Watson、Microsoft Azure、OpenMapQuest、PubNub等。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠