Python文本分析
Jens Albrecht, Sidharth Ramachandran, Christian Winkler
马晶慧 译
出版时间:2022年08月
页数:421
“我多么希望在刚开始从事研究的时候就拥有本书。作者的文字功底非常扎实,每个案例都经过了精心研究,很容易上手,有机器学习使用需求的业务都可以利用这些案例。”
——K.V.S. Dileep
GreyAtom教育计划开发主管

将文本转换成有价值的信息是企业寻求竞争优势的关键。随着近年来自然语言处理(NLP)的发展,如今用户可以通过各种方式来解决复杂的难题。但用户不清楚选择何种NLP工具或库才能满足业务需求,他们不知道应该使用何种技术以及按照怎样的顺序使用这些技术。
这本实战手册为数据科学家和开发人员提供了文本分析与自然语言处理中常见任务的最佳实践解决方案。书中介绍了各种Python真实案例研究,并提供了详细的代码示例,可以帮助你快速入门。
● 提取API与网页的数据。
● 统计分析和机器学习的文本数据预处理。
● 机器学习分类、主题建模与摘要。
● 解释AI模型与分类的结果。
● 利用单词嵌入,探索及可视化语义相似性。
● 分析产品评论中的客户情感。
● 根据命名实体及其关系创建知识图。
  1. 前言
  2. 第1章 洞悉文本数据
  3. 1.1 本章内容概要
  4. 1.2 探索性数据分析
  5. 1.3 数据集简介
  6. 1.4 案例:使用Pandas获取数据概要
  7. 1.4.1 计算列的汇总统计结果
  8. 1.4.2 检查缺少的数据
  9. 1.4.3 绘制值的分布图
  10. 1.4.4 比较各个类别的分布
  11. 1.4.5 可视化一段时间内的变化
  12. 1.5 案例:构建简单的文本预处理流水线
  13. 1.5.1 使用正则表达式分词
  14. 1.5.2 删除停用词
  15. 1.5.3 通过一行代码处理流水线
  16. 1.6 词频分析案例
  17. 1.6.1 案例:使用Counter统计单词个数
  18. 1.6.2 案例:创建词频图
  19. 1.6.3 案例:创建词云
  20. 1.6.4 案例:TF-IDF排名
  21. 1.7 案例:查找上下文关键字
  22. 1.8 案例:n元语法分析
  23. 1.9 案例:比较不同时间段和类别的词频
  24. 1.9.1 创建词频时间表
  25. 1.9.2 创建词频热图
  26. 1.10 小结
  27. 第2章 利用API提取文本
  28. 2.1 本章内容概要
  29. 2.2 应用程序编程接口
  30. 2.3 案例:使用requests模块通过API提取数据
  31. 2.3.1 分页
  32. 2.3.2 速率限制
  33. 2.4 案例:使用Tweepy提取推特数据
  34. 2.4.1 获取凭证
  35. 2.4.2 安装与配置Tweepy
  36. 2.4.3 通过Search API提取数据
  37. 2.4.4 从用户的时间线中提取数据
  38. 2.4.5 通过流API提取数据
  39. 2.5 小结
  40. 第3章 网页抓取与数据提取
  41. 3.1 本章内容概要
  42. 3.2 抓取网页与提取数据
  43. 3.3 路透社新闻存档简介
  44. 3.4 URL生成
  45. 3.5 案例:下载和解读robots.txt
  46. 3.6 案例:从sitemap.xml中寻找URL
  47. 3.7 案例:通过RSS查找URL
  48. 3.8 下载数据
  49. 3.9 案例:使用Python下载HTML页面
  50. 3.10 案例:利用wget下载HTML页面
  51. 3.11 提取半结构化数据
  52. 3.12 案例:通过正则表达式提取数据
  53. 3.13 案例:使用HTML解析器提取数据
  54. 3.14 案例:爬虫
  55. 3.14.1 案例介绍
  56. 3.14.2 错误处理与生产级质量的软件
  57. 3.15 基于密度的文本提取
  58. 3.15.1 利用Readability读取路透社的内容
  59. 3.15.2 总结基于密度的文本提取
  60. 3.16 一体化解决方案
  61. 3.17 案例:使用Scrapy抓取路透社的存档
  62. 3.18 爬虫面临的难题
  63. 3.19 总结和建议
  64. 第4章 准备统计和机器学习的文本数据
  65. 4.1 本章内容概要
  66. 4.2 数据预处理流水线
  67. 4.3 数据集介绍:Reddit Self-Posts
  68. 4.3.1 将数据加载到Pandas
  69. 4.3.2 案例:标准化属性名称
  70. 4.3.3 保存和加载数据框
  71. 4.4 清理文本数据
  72. 4.4.1 案例:使用正则表达式识别噪声
  73. 4.4.2 案例:使用正则表达式剔除噪声
  74. 4.4.3 案例:使用textacy规范化字符
  75. 4.4.4 案例:使用textacy根据模式遮挡数据
  76. 4.5 分词
  77. 4.5.1 案例:使用正则表达式分词
  78. 4.5.2 NLTK分词
  79. 4.5.3 分词建议
  80. 4.6 spaCy的语言处理
  81. 4.6.1 实例化流水线
  82. 4.6.2 处理文本
  83. 4.6.3 案例:自定义分词
  84. 4.6.4 案例:处理停用词
  85. 4.6.5 案例:根据词性提取词元
  86. 4.6.6 案例:提取名词短语
  87. 4.6.7 案例:提取命名实体
  88. 4.7 大型数据集的特征提取
  89. 4.7.1 案例:创建一个一体化函数
  90. 4.7.2 案例:使用spaCy处理大型数据集
  91. 4.7.3 持久地保存结果
  92. 4.7.4 有关执行时间的注意事项
  93. 4.8 补充说明
  94. 4.8.1 语言检测
  95. 4.8.2 拼写检查
  96. 4.8.3 分词规范化
  97. 4.9 小结和建议
  98. 第5章 特征工程与句法相似性
  99. 5.1 本章内容概要
  100. 5.2 实验数据集
  101. 5.3 案例:构建自己的向量化器
  102. 5.3.1 枚举词汇表
  103. 5.3.2 向量化文档
  104. 5.3.3 文档词条矩阵
  105. 5.3.4 相似性矩阵
  106. 5.4 词袋模型
  107. 5.4.1 案例:使用scikit-learn的CountVectorizer
  108. 5.4.2 案例:计算相似性
  109. 5.5 TF-IDF模型
  110. 5.5.1 利用TfidfTransformer优化文档向量
  111. 5.5.2 介绍ABC数据集
  112. 5.5.3 案例:降低特征维度
  113. 5.5.4 案例:通过具体化改进特征
  114. 5.5.5 案例:使用词元向量化文本
  115. 5.5.6 案例:限定单词类型
  116. 5.5.7 案例:删除最常见的单词
  117. 5.5.8 案例:通过n元语法添加上下文
  118. 5.6 ABC数据集的句法相似性
  119. 5.6.1 案例:查找与杜撰的标题最相似的标题
  120. 5.6.2 案例:查找大型语料库中最相似的两个文档
  121. 5.6.3 案例:查找相关词
  122. 5.6.4 有关语法相似性分析等运行时间较长的程序的提示
  123. 5.7 小结
  124. 第6章 文本分类算法
  125. 6.1 本章内容概要
  126. 6.2 Java开发工具错误数据集介绍
  127. 6.3 案例:构建文本分类系统
  128. 6.3.1 第一步:准备数据
  129. 6.3.2 第二步:分割训练与测试数据集
  130. 6.3.3 第三步:训练机器学习模型
  131. 6.3.4 第四步:模型评估
  132. 6.4 文本分类的最终解决方案
  133. 6.5 案例:利用交叉验证来评估实际的准确率
  134. 6.6 案例:通过网格搜索微调超参数
  135. 6.7 案例回顾与小结
  136. 6.8 小结
  137. 6.9 补充阅读
  138. 第7章 解释文本分类器
  139. 7.1 本章内容概要
  140. 7.2 案例:使用预测概率确定分类置信度
  141. 7.3 案例:衡量预测模型中特征的重要性
  142. 7.4 案例:使用LIME解释分类结果
  143. 7.5 案例:使用ELI5介绍分类结果
  144. 7.6 案例:使用Anchor解释分类结果
  145. 7.6.1 使用遮盖后的单词分布
  146. 7.6.2 使用实际的单词
  147. 7.7 小结
  148. 第8章 非监督学习:主题建模与聚类
  149. 8.1 本章内容概要
  150. 8.2 数据集:联合国一般性辩论
  151. 8.2.1 查看语料库的统计信息
  152. 8.2.2 准备工作
  153. 8.3 非负矩阵分解(NMF)
  154. 8.3.1 案例:使用NMF创建文档的主题模型
  155. 8.3.2 案例:使用NMF创建段落的主题模型
  156. 8.4 潜在语义分析/索引
  157. 8.5 隐含狄利克雷分布
  158. 8.5.1 案例:使用LDA生成段落的主题模型
  159. 8.5.2 案例:可视化LDA的结果
  160. 8.6 案例:使用词云来展示和比较主题模型
  161. 8.7 案例:计算文档的主题分布以及随时间的变化
  162. 8.8 Gensim主题建模
  163. 8.8.1 案例:Gensim的数据准备
  164. 8.8.2 案例:利用Gensim执行非负矩阵分解
  165. 8.8.3 案例:利用Gensim执行LDA
  166. 8.8.4 案例:计算连贯分数
  167. 8.8.5 案例:最佳主题数量
  168. 8.8.6 案例:使用Gensim创建层次狄利克雷过程
  169. 8.9 案例:使用聚集来挖掘文本数据的结构
  170. 8.10 进一步的想法
  171. 8.11 建议
  172. 8.12 小结
  173. 第9章 文本摘要
  174. 9.1 本章内容概要
  175. 9.2 文本摘要
  176. 9.2.1 提取式摘要
  177. 9.2.2 数据的预处理
  178. 9.3 案例:通过主题表示提取文本的摘要
  179. 9.3.1 通过TF-IDF识别重要的单词
  180. 9.3.2 LSA算法
  181. 9.4 案例:通过指示表示总结文本
  182. 9.5 测量文本摘要方法的表现
  183. 9.6 案例:使用机器学习生成文本摘要
  184. 9.6.1 第一步:创建目标标签
  185. 9.6.2 第二步:添加特征来辅助模型预测
  186. 9.6.3 第三步:构建机器学习模型
  187. 9.7 小结
  188. 9.8 补充阅读
  189. 第10章 通过单词嵌入探索语义关系
  190. 10.1 本章内容概要
  191. 10.2 语义嵌入
  192. 10.2.1 单词嵌入
  193. 10.2.2 单词嵌入的类比推理
  194. 10.2.3 嵌入的类型
  195. 10.3 案例:预训练模型的相似性查询
  196. 10.3.1 加载预训练模型
  197. 10.3.2 相似性查询
  198. 10.4 案例:训练与评估自己的嵌入
  199. 10.4.1 数据准备
  200. 10.4.2 案例:使用Gensim训练模型
  201. 10.4.3 案例:评估不同的模型
  202. 10.5 案例:可视化嵌入
  203. 10.5.1 案例:降维
  204. 10.5.2 案例:使用TensorFlow的嵌入投影
  205. 10.5.3 案例:构建相似树
  206. 10.6 小结
  207. 10.7 补充阅读
  208. 第11章 文本数据的情感分析
  209. 11.1 本章内容概要
  210. 11.2 情感分析
  211. 11.3 亚马逊客户评论数据集
  212. 11.4 案例:基于词典的情感分析
  213. 11.4.1 Bing Liu lexicon
  214. 11.4.2 基于词典的方法的缺点
  215. 11.5 监督学习方法
  216. 11.6 案例:向量化文本数据并应用监督机器学习算法
  217. 11.6.1 第一步:数据准备
  218. 11.6.2 第二步:分割训练数据集与测试数据集
  219. 11.6.3 第三步:文本向量化
  220. 11.6.4 第四步:训练机器学习模型
  221. 11.7 深度学习的预训练语言模型
  222. 11.8 案例:迁移学习技术与预训练语言模型
  223. 11.8.1 第一步:加载模型与分词
  224. 11.8.2 第二步:训练模型
  225. 11.8.3 第三步:模型评估
  226. 11.9 小结
  227. 11.10 补充阅读
  228. 第12章 知识图谱
  229. 12.1 本章内容概要
  230. 12.2 知识图谱
  231. 12.3 数据集简介
  232. 12.4 识别命名实体
  233. 12.4.1 案例:基于规则的命名实体识别
  234. 12.4.2 案例:规范化命名实体
  235. 12.4.3 合并实体词语
  236. 12.5 共指消解
  237. 12.5.1 案例:spaCy的词语扩展
  238. 12.5.2 案例:别名消解
  239. 12.5.3 案例:消解名称的多样性
  240. 12.5.4 案例:利用NeuralCoref执行回指消解
  241. 12.5.5 命名规范化
  242. 12.5.6 实体链接
  243. 12.6 案例:创建共现图
  244. 12.6.1 从文档中提取共现
  245. 12.6.2 使用Gephi可视化共现图
  246. 12.7 关系提取
  247. 12.7.1 案例:通过短语匹配提取关系
  248. 12.7.2 案例:使用依存树提取关系
  249. 12.8 创建知识图
  250. 12.9 小结
  251. 12.10 补充阅读
  252. 第13章 文本分析的生产应用
  253. 13.1 本章内容概要
  254. 13.2 利用Conda创建可复制的Python环境
  255. 13.3 案例:通过容器创建可复制的环境
  256. 13.4 案例:创建文本分析模型的REST API
  257. 13.5 案例:通过云服务部署和扩展API
  258. 13.6 案例:版本自动升级与自动部署构建
  259. 13.7 小结
  260. 13.8 补充阅读
书名:Python文本分析
译者:马晶慧 译
国内出版社:中国电力出版社
出版时间:2022年08月
页数:421
书号:978-7-5198-6444-6
原版书书名:Blueprints for Text Analytics Using Python
原版书出版商:O'Reilly Media
Jens Albrecht
 
Jens Albrecht是纽伦堡理工学院计算机科学系的全职教授。主要从事数据管理与分析领域的研究,尤其侧重于文本分析。他拥有计算机科学博士学位。2012年,他重新加入学术圈,在这之前他在该行业工作了十多年,曾担任顾问和数据架构师。他发表了很多有关大数据管理与分析的文章。
 
 
Sidharth Ramachandran
 
Sidharth Ramachandran目前负责领导一个数据科学家团队,主要为消费品行业构建数据产品。他拥有十多年电信、银行以及市场营销等领域软件工程与数据科学的工作经验。他是WACAO的合伙创始人(WACAO是一款WhatsApp上的智能个人助理,Techcrunch曾介绍过该应用)。他拥有IIT Roorkee的工程学学士学位以及IIM Kozhikode的MBA学位。他热衷于通过技术解决实际问题,业余时间他喜欢钻研个人项目。
 
 
Christian Winkler
 
Christian Winkler是一位数据科学家与和机器学习架构师。他拥有理论物理学博士学位,在大数据与人工智能领域工作了20多年。尤其专注于可扩展系统以及大规模文本处理的智能算法。他是datanizing GmbH的创始人,他喜欢在大会上发表演讲,而且还发表了多篇机器学习/文本分析的文章。
 
 
本书封面上的动物是彩锯鳞蝰(英文名:Palestine saw-scaled viper,拉丁学名:Echis coloratus)。
这种毒蛇主要分布于中东和非洲东北部地区。在内盖夫以及朱迪亚沙漠地带的岩质沙漠中,这种毒蛇很常见,从海平面到海拔2500米以上的栖息地中都可以见到它们的身影。这种毒蛇的头部呈三角锥状,周身黄褐色,背面呈独特的锯齿形图案。身长最大可至75厘米,它会根据热源寻找猎物。
购买选项
定价:128.00元
书号:978-7-5198-6444-6
出版社:中国电力出版社