[套装书]Python程序设计:人工智能案例实践+Python人工智能项目实战(2册)

作者
保罗·戴特尔 哈维·戴特尔 桑塔努·帕塔纳亚克
丛书名
华章程序员书库
出版社
机械工业出版社
ISBN
9782104161442
简要
简介
内容简介书籍计算机书籍 ---------------------------8079862 - Python程序设计:人工智能案例实践--------------------------- 本书共16章。第1~10章介绍Python编程,涉及人工智能、基本描述统计、集中趋势和分散度量、模拟、静态和动态可视化、使用CSV文件、用于数据探索和数据整理的Pandas、时间序列和简单线性回归。第11~16章提供多种实践案例研究,涉及自然语言处理、Twitter数据挖掘、IBM Watson认知计算、包含分类和回归的有监督机器学习、聚类无监督机器学习、卷积神经网络深度学习、递归神经网络深度学习、包含Hadoop/Spark/NoSQL/物联网的大数据等。 ---------------------------8064457 - Python人工智能项目实战--------------------------- 通过结合深度学习和强化学习,帮助你构建智能而且实用的人工智能系统。本书涉及的项目涵盖众多领域,例如医疗健康、电子商务、专家系统、智能安防、移动应用和自动驾驶,使用的技术包括卷积神经网络、深度强化学习、基于LSTM的RNN、受限玻尔兹曼机、生成对抗网络、机器翻译和迁移学习。本书有关构建智能应用的理论知识将帮助读者使用有趣的方法来拓展项目,令其快速创建有影响力的AI应用。读完本书之后,你将有足够的能力建立自己的智能模型,轻松地解决来自任何领域的问题。
目录
[套装书具体书目]
8064457 - Python人工智能项目实战 - 9787111637905 - 机械工业出版社 - 定价 79
8079862 - Python程序设计:人工智能案例实践 - 9787111678458 - 机械工业出版社 - 定价 149



---------------------------8079862 - Python程序设计:人工智能案例实践---------------------------


审稿人评论
译者序
前言
作者简介
开始阅读本书之前
第一部分 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



---------------------------8064457 - Python人工智能项目实战---------------------------


译者序
前言
作者简介
审校者简介
第1章 人工智能系统基础知识 1
1.1 神经网络 2
1.2 神经激活单元 5
1.2.1 线性激活单元 5
1.2.2 sigmoid激活单元 6
1.2.3 双曲正切激活函数 6
1.2.4 修正线性单元 7
1.2.5 softmax激活单元 9
1.3 用反向传播算法训练神经网络 9
1.4 卷积神经网络 12
1.5 循环神经网络 13
1.6 生成对抗网络 16
1.7 强化学习 18
1.7.1 Q学习 19
1.7.2 深度Q学习 20
1.8 迁移学习 21
1.9 受限玻尔兹曼机 22
1.10 自编码器 23
1.11 总结 24
第2章 迁移学习 26
2.1 技术要求 26
2.2 迁移学习简介 27
2.3 迁移学习和糖尿病视网膜病变检测 28
2.4 糖尿病视网膜病变数据集 29
2.5 定义损失函数 30
2.6 考虑类别不平衡问题 31
2.7 预处理图像 32
2.8 使用仿射变换生成额外数据 33
2.8.1 旋转 34
2.8.2 平移 34
2.8.3 缩放 35
2.8.4 反射 35
2.8.5 通过仿射变换生成额外的图像 36
2.9 网络架构 36
2.9.1 VGG16迁移学习网络 38
2.9.2 InceptionV3迁移学习网络 39
2.9.3 ResNet50迁移学习网络 39
2.10 优化器和初始学习率 40
2.11 交叉验证 40
2.12 基于验证对数损失的模型检查点 40
2.13 训练过程的Python实现 41
2.14 类别分类结果 50
2.15 在测试期间进行推断 50
2.16 使用回归而非类别分类 52
2.17 使用keras sequential工具类生成器 53
2.18 总结 57
第3章 神经机器翻译 58
3.1 技术要求 59
3.2 基于规则的机器翻译 59
3.2.1 分析阶段 59
3.2.2 词汇转换阶段 60
3.2.3 生成阶段 60
3.3 统计机器学习系统 60
3.3.1 语言模型 61
3.3.2 翻译模型 63
3.4 神经机器翻译 65
3.4.1 编码器–解码器模型 65
3.4.2 使用编码器–解码器模型进行推断 66
3.5 实现序列到序列的神经机器翻译 67
3.5.1 处理输入数据 67
3.5.2 定义神经翻译机器的模型 71
3.5.3 神经翻译机器的损失函数 73
3.5.4 训练模型 73
3.5.5 构建推断模型 74
3.5.6 单词向量嵌入 78
3.5.7 嵌入层 79
3.5.8 实现基于嵌入的NMT 79
3.6 总结 84
第4章 基于GAN的时尚风格迁移 85
4.1 技术要求 85
4.2 DiscoGAN 86
4.3 CycleGAN 88
4.4 学习从手绘轮廓生成自然手提包 89
4.5 预处理图像 89
4.6 DiscoGAN的生成器 91
4.7 DiscoGAN的判别器 93
4.8 构建网络和定义损失函数 94
4.9 构建训练过程 97
4.10 GAN训练中的重要参数值 99
4.11 启动训练 100
4.12 监督生成器和判别器的损失 101
4.13 DiscoGAN生成的样例图像 103
4.14 总结 104
第5章 视频字幕应用 105
5.1 技术要求 105
5.2 视频字幕中的CNN和LSTM 106
5.3 基于序列到序列的视频字幕系统 107
5.4 视频字幕系统数据集 109
5.5 处理视频图像以创建CNN特征 110
5.6 处理视频的带标签字幕 113
5.7 构建训练集和测试集 114
5.8 构建模型 115
5.8.1 定义模型的变量 116
5.8.2 编码阶段 117
5.8.3 解码阶段 117
5.8.4 计算小批量损失 118
5.9 为字幕创建单词词汇表 118
5.10 训练模型 119
5.11 训练结果 123
5.12 对未见过的视频进行推断 124
5.12.1 推断函数 126
5.12.2 评估结果 127
5.13 总结 128
第6章 智能推荐系统 129
6.1 技术要求 129
6.2 什么是推荐系统 129
6.3 基于潜在因子分解的推荐系统 131
6.4 深度学习与潜在因子协同过滤 132
6.5 SVD++ 136
6.6 基于受限玻尔兹曼机的推荐系统 138
6.7 对比分歧 139
6.8 使用RBM进行协同过滤 140
6.9 使用RBM实现协同过滤 142
6.9.1 预处理输入 143
6.9.2 构建RBM网络进行协作过滤 144
6.9.3 训练RBM 147
6.10 使用训练好的RBM进行推断 149
6.11 总结 150
第7章 用于电影评论情感分析的移动应用程序 151
7.1 技术要求 152
7.2 使用TensorFlow mobile构建Android移动应用程序 152
7.3 Android应用中的电影评论评分 153
7.4 预处理电影评论文本 154
7.5 构建模型 156
7.6 训练模型 157
7.7 将模型冻结为protobuf格式 159
7.8 为推断创建单词到表征的字典 161
7.9 应用程序交互界面设计 162
7.10 Android应用程序的核心逻辑 164
7.11 测试移动应用 168
7.12 总结 170
第8章 提供客户服务的AI聊天机器人 171
8.1 技术要求 172
8.2 聊天机器人的架构 172
8.3 基于LSTM的序列到序列模型 173
8.4 建立序列到序列模型 174
8.5 Twitter平台上的聊天机器人 174
8.5.1 构造聊天机器人的训练数据 175
8.5.2 将文本数据转换为单词索引 175
8.5.3 替换匿名用户名 176
8.5.4 定义模型 176
8.5.5 用于训练模型的损失函数 178
8.5.6 训练模型 179
8.5.7 从模型生成输出响应 180
8.5.8 所有代码连起来 180
8.5.9 开始训练 181
8.5.10 对一些输入推特的推断结果 181
8.6 总结 182
第9章 基于增强学习的无人驾驶 183
9.1 技术要求 183
9.2 马尔科夫决策过程 184
9.3 学习Q值函数 185
9.4 深度Q学习 186
9.5 形式化损失函数 186
9.6 深度双Q学习 187
9.7 实现一个无人驾驶车的代码 189
9.8 深度Q学习中的动作离散化 189
9.9 实现深度双Q值网络 190
9.10 设计智能体 191
9.11 自动驾驶车的环境 194
9.12 将所有代码连起来 197
9.13 训练结果 202
9.14 总结 203
第10章 从深度学习的角度看CAPTCHA 204
10.1 技术要求 205
10.2 通过深度学习破解CAPTCHA 205
10.2.1 生成基本的CAPTCHA 205
10.2.2 生成用于训练CAPTCHA破解器的数据 206
10.2.3 CAPTCHA破解器的CNN架构 208
10.2.4 预处理CAPTCHA图像 208
10.2.5 将CAPTCHA字符转换为类别 209
10.2.6 数据生成器 210
10.2.7 训练CAPTCHA破解器 211
10.2.8 测试数据集的准确性 212
10.3 通过对抗学习生成CAPTCHA 214
10.3.1 优化GAN损失 215
10.3.2 生成器网络 215
10.3.3 判别器网络 216
10.3.4 训练GAN 219
10.3.5 噪声分布 220
10.3.6 数据预处理 220
10.3.7 调用训练 221
10.3.8 训练期间CAPTCHA的质量 222
10.3.9 使用训练后的生成器创建CAPTCHA 224
10.4 总结 225

推荐

车牌查询
桂ICP备20004708号-3