产品特色
编辑推荐
自然语言处理(NLP)属于人工智能与计算机语言学的交叉领域,处理的是计算机与人类语言之间的交互问题。随着人机交互需求的日益增长,计算机具备处理当前主要自然语言的能力已经成为了一个必然趋势。NLTK正是这一领域中一个强大而稳健的工具包。
在这本书中,我们首先会介绍一些与NLP相关的知识。然后,我们会探讨一些与数据科学相关的任务,通过这些任务来学习如何从零开始构建自定义的标识器和解析器。在此过程中,我们将会深度探索NLP领域的基本概念,为这一领域各种开源的Python工具和库提供具有实践意义的见解。接下来,我们将会介绍如何分析社交媒体网站,发现热门话题,进行舆情分析。zui后,我们还会介绍一些用于处理大规模文本的工具。
在阅读完本书之后,您将会对NLP与数据科学领域中的概念有一个充分的了解,并能将这些知识应用到日常工作中。
如果您是NLP或机器学习相关领域的爱好者,并有一些文本处理的经验,那么本书就是为你量身定做的。此外,这本书也是专业Python程序员快速学习NLTK库的理想选择。
通过本书,你将学会:
■ 了解自然语言的复杂性以及机器对它们的处理方式。
■ 如何利用标识化处理手段清理文本歧义,并利用分块操作更好地处理数据。
■ 探索不同标签类型的作用,并学习如何将句子标签化。
■ 如何根据自己的需要来创建自定义的解析器和标识器。
■ 如何构建出具有拼写检查、搜索、机器翻译以及问答系统等功能的实用程序。
■ 如何通过信息爬取与捕获的手段对相关数据内容进行检索。
■ 如何通过特性的提取与选取,构建出针对不同文本的分类系统。
■ 如何使用各种第三方Python库,如pandas、scikit-learn、matplotlib、gensim。
■ 如何对社交媒体网站进行分析,包括发掘热门话题、舆情分析等。
内容简介
NLTK 库是当前自然语言处理(NLP)领域zui为流行、使用zui为广泛的库之一, 同时Python语言经过一段时间的发展也已逐渐成为主流的编程语言之一。
本书主要介绍如何通过NLTK库与一些Python库的结合从而实现复杂的NLP任务和机器学习应用。全书共分为10章。第1章对NLP进行了简单介绍。第2章、第3章和第4章主要介绍一些通用的预处理技术、专属于NLP领域的预处理技术以及命名实体识别技术等。第5章之后的内容侧重于介绍如何构建一些NLP应用,涉及文本分类、数据科学和数据处理、社交媒体挖掘和大规模文本挖掘等方面。
本书适合 NLP 和机器学习领域的爱好者、对文本处理感兴趣的读者、想要快速学习NLTK的zishenPython程序员以及机器学习领域的研究人员阅读。
作者简介
Nitin Hardeniya 数据科学家,拥有4年以上从业经验,期间分别任职于Fidelity、Groupon和[24]7等公司,其业务横跨各个不同的领域。此外,他还拥有IIIT-H的计算语言学硕士学位,并且是5项客户体验专利的作者。
目录
第1章 自然语言处理简介 1
1.1 为什么要学习NLP 2
1.2 先从Python开始吧 5
1.2.1 列表 5
1.2.2 自助功能 6
1.2.3 正则表达式 8
1.2.4 字典 9
1.2.5 编写函数 10
1.3 向NLTK迈进 11
1.4 练习 16
1.5 小结 17
第2章 文本的歧义及其清理 18
2.1 何谓文本歧义 18
2.2 文本清理 20
2.3 语句分离器 21
2.4 标识化处理 22
2.5 词干提取 23
2.6 词形还原 24
2.7 停用词移除 25
2.8 罕见词移除 26
2.9 拼写纠错 26
2.10 练习 27
2.11 小结 28
第3章 词性标注 29
3.1 何谓词性标注 29
3.1.1 Stanford标注器 32
3.1.2 深入了解标注器 33
3.1.3 顺序性标注器 35
3.1.4 Brill标注器 37
3.1.5 基于机器学习的标注器 37
3.2 命名实体识别(NER) 38
3.3 练习 40
3.4 小结 41
第4章 文本结构解析 43
4.1 浅解析与深解析 43
4.2 两种解析方法 44
4.3 为什么需要进行解析 44
4.4 不同的解析器类型 46
4.4.1 递归下降解析器 46
4.4.2 移位-归约解析器 46
4.4.3 图表解析器 46
4.4.4 正则表达式解析器 47
4.5 依存性文本解析 48
4.6 语块分解 50
4.7 信息提取 53
4.7.1 命名实体识别(NER) 53
4.7.2 关系提取 54
4.8 小结 55
第5章 NLP应用 56
5.1 构建第一个NLP应用 57
5.2 其他NLP应用 60
5.2.1 机器翻译 60
5.2.2 统计型机器翻译 61
5.2.3 信息检索 62
5.2.4 语音识别 64
5.2.5 文本分类 65
5.2.6 信息提取 66
5.2.7 问答系统 67
5.2.8 对话系统 67
5.2.9 词义消歧 67
5.2.10 主题建模 68
5.2.11 语言检测 68
5.2.12 光符识别 68
5.3 小结 68
第6章 文本分类 70
6.1 机器学习 71
6.2 文本分类 72
6.3 取样操作 74
6.3.1 朴素贝叶斯法 76
6.3.2 决策树 79
6.3.3 随机梯度下降法 80
6.3.4 逻辑回归 81
6.3.5 支持向量机 81
6.4 随机森林算法 83
6.5 文本聚类 83
6.6 文本中的主题建模 84
6.7 参考资料 87
6.8 小结 87
第7章 Web爬虫 88
7.1 Web爬虫 88
7.2 编写第一个爬虫程序 89
7.3 Scrapy库中的数据流 92
7.3.1 Scrapy库的shell 93
7.3.2 目标项 98
7.4 生成网站地图的蜘蛛程序 99
7.5 目标项管道 100
7.6 参考资料 102
7.7 小结 102
第8章 NLTK与其他Python库的搭配
运用 104
8.1 NumPy 104
8.1.1 多维数组 105
8.1.2 基本运算 106
8.1.3 从数组中提取数据 107
8.1.4 复杂矩阵运算 108
8.2 SciPy 112
8.2.1 线性代数 113
8.2.2 特征值与特征向量 113
8.2.3 稀疏矩阵 114
8.2.4 优化措施 115
8.3 pandas 117
8.3.1 读取数据 117
8.3.2 数列 119
8.3.3 列转换 121
8.3.4 噪声数据 121
8.4 matplotlib 123
8.4.1 子图绘制 123
8.4.2 添加坐标轴 124
8.4.3 散点图绘制 125
8.4.4 条形图绘制 126
8.4.5 3D绘图 126
8.5 参考资料 126
8.6 小结 127
第9章 Python中的社交媒体挖掘 128
9.1 数据收集 128
9.2 数据提取 132
9.3 地理可视化 134
9.3.1 影响力检测 135
9.3.2 Facebook 135
9.3.3 有影响力的朋友 139
9.4 小结 141
第10章 大规模文本挖掘 142
10.1 在Hadoop上使用Python的
不同方式 142
10.1.1 Python的流操作 143
10.1.2 Hive/Pig下的UDF 143
10.1.3 流封装器 143
10.2 Hadoop上的NLTK 144
10.2.1 用户定义函数
(UDF) 144
10.2.2 Python的流操作 146
10.3 Hadoop上的Scikit-learn 147
10.4 PySpark 150
10.5 小结 153
《Python数据科学实战:从数据采集到模型部署》 内容简介 在当今信息爆炸的时代,数据已经成为驱动决策、创新和进步的核心要素。掌握从海量数据中提取有价值信息的能力,已经成为个人和企业在激烈竞争中脱颖而出的关键。本书旨在为读者提供一套系统、全面的数据科学实践指南,涵盖从数据采集、清洗、探索性分析,到机器学习模型构建、评估和部署的全流程。我们摒弃了繁杂的理论推导,聚焦于实际应用,通过丰富的代码示例和真实案例,帮助读者快速掌握Python在数据科学领域的核心工具和技术。 一、 数据世界的入口:数据采集与预处理 数据的质量直接影响着后续分析和模型的效果。本书的第一部分将引导读者深入理解各种数据采集的技术与方法,并着重于如何处理不完整、不一致、噪声等问题,确保数据的可用性。 网络数据采集的利器:BeautifulSoup与Scrapy 我们将从零开始,学习如何使用`BeautifulSoup`库,优雅地从HTML和XML文档中提取所需信息。你将学会如何定位元素、解析标签属性、处理嵌套结构,以及构建简单的爬虫脚本来抓取网页内容。 对于更复杂的、大规模的网络数据采集需求,`Scrapy`框架将是你的得力助手。本书将详细介绍`Scrapy`的核心组件,包括Spider、Item Pipeline、Downloader Middleware等,指导你构建高效、可扩展的网络爬虫,完成定向抓取任务。我们将模拟真实场景,例如抓取电商网站的商品信息、新闻网站的文章列表等。 实战应用:学习如何利用爬虫技术,收集特定行业的市场数据、社交媒体上的用户反馈,为后续分析提供一手素材。 结构化数据的利刃:Pandas数据操控 `Pandas`是Python数据科学领域不可或缺的瑞士军刀。本书将以其为核心,详细讲解数据框(DataFrame)和序列(Series)的创建、索引、切片、排序等基本操作。 数据清洗是数据科学的核心步骤之一。我们将深入探讨如何处理缺失值(NaN),包括删除、填充(均值、中位数、众数、插值等)以及更高级的预测填充方法。 数据的格式转换、数据合并(merge, join, concat)、数据分组(groupby)与聚合(aggregation)等常用操作,都将通过生动的代码示例进行阐释。 实战应用:以一份包含用户交易记录的CSV文件为例,演示如何清洗数据中的重复项、异常值,如何根据用户ID进行分组统计,计算用户的消费总额、购买频率等关键指标。 数据可视化初探:Matplotlib与Seaborn 在动手处理数据的同时,直观地理解数据至关重要。`Matplotlib`作为Python绘图的事实标准,本书将教会你创建各种基本的图表,如折线图、散点图、柱状图、饼图等,并进行美化,调整颜色、样式、标签等。 `Seaborn`作为`Matplotlib`的上位库,提供了更美观、更高级的统计图形。我们将学习如何使用`Seaborn`轻松绘制热力图(heatmap)、箱线图(boxplot)、小提琴图(violinplot)、分布图(distplot)等,用于探索变量之间的关系和数据分布。 实战应用:将上一环节清洗好的用户交易数据进行可视化,例如绘制用户消费金额的分布直方图,查看不同用户的交易笔数散点图,以直观的方式发现潜在的规律。 二、 探索数据的内在规律:探索性数据分析(EDA) EDA是理解数据集、发现模式、形成假设的关键阶段。本部分将带领读者掌握一系列探索数据的方法。 描述性统计的智慧 掌握如何利用`Pandas`计算数据的均值、中位数、方差、标准差、分位数等描述性统计量,全面了解数据的中心趋势、离散程度和分布形态。 学习如何使用`describe()`函数快速概览数据集的统计摘要。 实战应用:对金融数据集进行描述性统计分析,例如计算股票价格的日均涨跌幅、波动率,了解历史数据的基本特征。 变量间的关联探秘 理解不同变量之间的关系对于构建有效的模型至关重要。我们将学习如何计算和可视化变量之间的相关系数(Pearson, Spearman),并利用热力图直观展示相关性矩阵。 探索协方差的概念,以及它与相关系数的区别。 实战应用:分析房产数据集,计算房屋面积、卧室数量、地理位置与房屋价格之间的相关性,找出对房价影响最大的因素。 数据分组与趋势分析 深入掌握`groupby()`操作,根据某个或多个类别变量对数据进行分组,并对每个分组进行聚合分析。 学习如何绘制分组柱状图、折线图,观察不同类别下数据的变化趋势。 实战应用:在一个包含销售数据的表格中,按地区、产品类别对销售额进行分组统计,并可视化不同区域的销售趋势,发现市场表现差异。 三、 机器学习的基石:模型构建与评估 本部分将是本书的核心,聚焦于如何使用Python的强大库构建、训练和评估各类机器学习模型。 机器学习的预备知识:特征工程 特征提取与选择:学习如何从原始数据中提取有用的特征,例如从文本中提取词袋模型(Bag-of-Words)、TF-IDF特征;从日期时间中提取年、月、日、星期等。 特征缩放:理解为什么需要进行特征缩放(标准化、归一化),以及如何使用`StandardScaler`和`MinMaxScaler`进行处理,以避免某些特征对模型产生过大的影响。 类别特征处理:掌握独热编码(One-Hot Encoding)、标签编码(Label Encoding)等方法,将非数值型特征转换为模型可以处理的格式。 实战应用:在构建用户流失预测模型时,从用户行为日志中提取用户活跃度、访问时长等特征,并进行相应的编码和缩放。 监督学习的实践:回归与分类 线性回归与逻辑回归:从最基础的模型开始,深入理解线性回归在预测连续值问题上的应用,以及逻辑回归在二分类问题上的原理与实践。我们将使用`Scikit-learn`库进行模型的训练和预测。 决策树与随机森林:学习如何构建决策树模型,理解其决策过程,并掌握随机森林作为集成学习方法的优势,如何通过投票或平均来提升模型的泛化能力。 支持向量机(SVM):理解SVM的核心思想,包括最大间隔分类器和核函数的应用,用于处理线性和非线性分类问题。 K近邻(KNN):学习基于距离度量的分类和回归方法,理解其原理和在实际应用中的优劣。 实战应用: 回归:构建一个房屋价格预测模型,利用房屋的各种特征(面积、位置、年龄等)来预测其售价。 分类:构建一个客户流失预测模型,根据客户的消费习惯、服务使用情况等信息,预测客户是否会流失。 多分类:构建一个新闻文章分类器,将新闻文章划分到体育、科技、娱乐等不同类别。 无监督学习的探索:聚类与降维 K-Means聚类:学习如何将数据划分为若干个簇,发现数据中的隐藏分组。我们将讲解K-Means算法的原理、优化方法以及如何选择合适的簇数量。 主成分分析(PCA):掌握PCA降维技术,用于减少数据的维度,去除冗余信息,并可视化高维数据。 实战应用: 聚类:对电商平台的客户进行细分,根据其购买行为将其划分为不同的客户群体,为个性化推荐提供依据。 降维:在处理高维图像数据时,使用PCA进行降维,以加快模型的训练速度,并提取图像的关键特征。 模型评估与调优:知晓模型的优劣 分类模型评估指标:深入理解准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1分数、ROC曲线和AUC值,并知道在不同场景下如何选择合适的指标。 回归模型评估指标:掌握均方误差(MSE)、均方根误差(RMSE)、平均绝对误差(MAE)、R²分数等,用于衡量回归模型的预测精度。 交叉验证:学习K折交叉验证等方法,科学地评估模型的泛化能力,避免过拟合。 超参数调优:理解超参数与模型参数的区别,并掌握网格搜索(Grid Search)和随机搜索(Random Search)等技术,寻找最优的模型超参数组合。 实战应用:对之前构建的客户流失预测模型进行全面评估,分析其精确率和召回率,通过交叉验证和超参数调优,不断提升模型的预测性能。 四、 模型部署:让模型服务于实际 构建出优秀模型只是第一步,如何将模型部署到实际应用环境中,让它发挥价值,是数据科学项目的最终目标。 模型持久化:保存与加载 学习使用`pickle`或`joblib`库,将训练好的模型保存到文件中,以便后续重复使用,无需重新训练。 实战应用:将训练好的房屋价格预测模型保存为文件,方便后续编写Web应用调用。 简单的Web服务集成:Flask入门 我们将介绍`Flask`这个轻量级的Web框架,学习如何构建一个简单的API接口,接收外部请求,调用已保存的模型进行预测,并将结果返回。 实战应用:创建一个RESTful API,让用户可以通过HTTP请求输入房屋信息,并返回预测的房屋价格。 模型部署的思考与实践 简要讨论模型部署时可能遇到的问题,如性能优化、实时预测、监控与维护等。 介绍一些常见的模型部署方案,如容器化(Docker)和云平台部署(AWS, Azure, GCP等)的基本概念。 本书的特色 实战驱动:每一章都配有大量的代码示例和真实案例,读者可以通过亲手实践,加深对知识的理解。 循序渐进:从基础的数据处理到复杂的机器学习模型,内容组织逻辑清晰,适合不同阶段的读者。 聚焦Python生态:全面介绍Python在数据科学领域最常用、最强大的库,如`Pandas`, `NumPy`, `Matplotlib`, `Seaborn`, `Scikit-learn`等。 解决实际问题:本书旨在帮助读者掌握解决实际数据科学问题的能力,而非仅仅学习理论知识。 无论你是初学者,希望入门数据科学领域,还是有一定基础,希望系统梳理和提升技能的数据从业者,亦或是希望将数据分析和机器学习技术应用于自身业务的开发者,本书都将是你宝贵的参考资料。通过本书的学习,你将能够自信地驾驭数据,构建强大的机器学习应用,从而在信息时代赢得先机。