正版图书,可开发票,请放心购买。
¥ 55.87 4.4折 ¥ 128 全新
库存11件
作者[美]延斯·阿尔布雷希特,[美]西达尔特·拉马钱德兰,[美]克里斯蒂安·温克勒
出版社中国电力出版社
ISBN9787519864446
出版时间2022-08
装帧平装
开本16开
定价128元
货号29456260
上书时间2024-11-07
前言文字蕴涵了强大的力量。古老的苏美尔人发明了世界上早的文字,而古登堡(欧洲活字印刷术发明人)印刷术的发明则极大地推进了文字知识的传播与全世界的启蒙运动。语言对人的思维方式的影响很大,人类学家认为我们的综合推理能力的发展离不开语言的发展。通过文本形式表现出来的语言能够捕捉到人类的大部分思维、行为和动作,而我们的生活也越来越离不开文本。我们通过电子邮件与同事交流,通过聊天工具与朋友和家人沟通,通过各种社交媒体工具与其他人分享我们的热情。领导者通过演讲(文字形式的记录)来激励人们,研究人员通过发表论文来传达他们的发现,公司通过财务报表汇报运营状况。就连本书也是通过文本来传播知识。分析与理解文本可以帮助我们获取知识,并做出决策。文本分析实际上就是通过编写计算机程序,分析以文本形式呈现的大量信息。在购买商品或选择餐馆的时候,我们会参考顾客的评价。而公司则可以利用这些评价来改进自己的产品或服务。出版商可以在出版某个与编程语言相关的书籍之前,通过分析网上的讨论来评估该语言的需求。与其他类型的数据相比,计算机理解文本的难度更大。虽然我们有语法规则以及构成句子的准则,但通常人们不会严格遵守这些规则,而且文本对上下文的依赖非常严重。即使文本的语法都很正确,计算机也很难正确地解释文本的含义。即使是表达相同的想法,人们在发推文时选择的单词与写电子邮件大不相同。随着近年来统计技术与机器学习算法的发展,我们终于能够克服许多困难,从文本数据中获取价值。以前的模型只能统计单词的出现频率,而如今的新模型则能够更好地捕获文本的语义。不过,即使是简单的模型,在许多业务需求中也有非常好的表现。举个例子,我们的一位客户是一家家电制造商,他们通过分析产品评论掌握了影响客户购买产品的关键信息,并根据这些信息调整了营销策略。再举一个例子,一家电子商务零售商使用深度神经网络对客户咨询进行了分类,并将他们分配给正确的部门,以更快地为客户解决问题。分析科学期刊的文摘能够帮助研发公司发现新材料的趋势,并相应地调整研究方向。时装公司通过分析社交网络中的帖子来发现客户群的大型话题。我们希望通过本书将我们从这些项目(以及其他项目)中积累的经验转化成一个个案例,供各位读者参考。本书的主要内容本书主要面向数据科学家与开发人员,帮助他们快速入门文本分析与自然语言处理。本书的重点在于开发实践解决方案,希望能够帮助你解决日常业务的需求。对于案例,我们的定义是常见问题的实践解决方案。这些案例都是模板,可供你复制和重复使用。在各个案例中,我们使用了数据分析、自然语言处理和机器学习方面的Python 框架。除此之外,我们还介绍了基础模型和算法。我们不要求任何有关自然语言处理领域的前提知识,本书会介绍必要的背景知识,帮助你快速入门。在每章中,我们会针对具体任务介绍和讨论多个不同的解决方案及其潜在的优势和劣势。因此,你不仅可以了解如何解决某个问题,而且还可以获得一整套现成的解决方案,你可以在此基础之上,根据自己的数据和需求进行定制。本书共13 章,每一章都提供了一个文本分析特定方面的案例(见表1)。我们会根据示例数据集,逐步开发和解释案例。表1:章节概述章节 数据集 库第1 章,洞悉文本数据。 联合国一般性辩论 Pandas,Regex文本数据的统计探索第2 章,利用API 提取文本。 GitHub、推特和维基百科API Requests,Tweepy使用不同的Python 模块从流行的API 提取数据第3 章,网页抓取与数据提取。 路透社网站 Requests,Beautiful使用Python 库下载网页并提取内容 Soup,Readabilitylxml,Scrapy表1:章节概述(续)章节 数据集 库第4 章,准备统计和机器学习的文本数据。 Reddit 的帖子 Regex,spaCy介绍数据清理和语言处理第5 章,特征工程与句法相似性。 来自ABC 新闻的一百万条 scikit-learn,NumPy介绍特征与向量化 标题第6 章,文本分类算法。 Java 开发工具的错误报告 scikit-learn使用机器学习算法对软件错误进行分类第7 章,解释分本分类器。 Java 开发工具的错误报告 scikit-learn,Lime,解释模型,并对结果进行分类 Anchor,ELI5第8 章,非监督学习:主题建模与聚类。 联合国一般性辩论 scikit-learn,Gensim使用非监督学习方法获得无偏差的文本洞察第9 章,文本摘要。 路透社新闻,旅游论坛讨论 Sumy,scikit-learn使用基于规则和基于机器学习的算法,创建新闻和论坛文章的摘要第10 章,通过单词嵌入探索语义关系。 Reddit 的帖子 Gensim使用单词嵌入探索并可视化特定数据集中的语义相似性第11 章,文本数据的情感分析。 亚马逊商品评价 Transformers,scikit-分析亚马逊商品评价中的客户情感 learn,NLTK第12 章,知识图谱。 关于收购与并购的路透社新闻 spaCy使用预训练的模型和自定义的规则,提取命名实体和它们之间的关系第13 章,文本分析的生产应用。 FastAPI,Docker,在谷歌云平台上部署情感分析解决方案 conda,Kubernetes,的API,并考虑伸缩问题gcloud我们挑选的主题包含了日常文本分析工作中常见的各类问题,常见的任务包括数据收集、统计数据探索,以及使用监督机器学习与非监督机器学习。涉及的业务问题既有内容分析(“人们在谈论什么?”),也有自动文本分类。前提知识通过本书的学习,你将了解如何使用Python 生态系统有效地解决文本分析问题。我们将详细地解释涉及文本分析和机器学习的所有概念,但你应该对Python 有基本的了解,包括Pandas 之类的基本库。此外,你还需要熟悉Jupyter Notebook,这样就可以在阅读本书时尝试书中的代码了。如果你不具备这些知识,则请参考learnpython.org、docs.python.org 或DataCamp(https://oreil.ly/oB-eH)上的教程。尽管我们会解释书中所用算法的基本概念,但我们不会深入细节。即便你不太明白这些算法背后的数学知识,也可以读懂书中的示例,并使用书中的代码。但拥有大学水平的线性代数以及统计学的基本知识会非常有帮助。本书涉及的主要工具库每个数据分析项目都需要从数据探索与数据处理着手。Pandas(https://pandas.pydata.org)无疑是这方面流行的Python 库。Pandas 提供了丰富的功能,可用于访问、转换、分析与可视化数据。如果你从未接触过该库,那么我们建议你在阅读本书之前,先行学习官方的入门教程“十分钟入门Pandas”(https://oreil.ly/eWlId),或者你也可以尝试网上其他的免费教程。多年以来,scikit-learn(https://scikit-learn.org)一直是常用的Python 机器学习工具包。该库实现了多种监督机器学习和非监督机器学习的算法,而且还提供了许多数据预处理的功能。本书中的许多章节都利用scikitlearn 将文本转换为数值向量,然后进行文本分类。然而,在深度神经模型方面,PyTorch 与TensorFlow 等框架明显比scikit-learn 更胜一筹。但是,我们不打算直接使用这些库,我们在第11 章使用了Hugging Face 的Transformers 库(https://oreil.ly/f5Ped)进行情感分析。自BERT 注1 发布以来,基于transformer 的模型在需要理解文本含义的任务处理上已经超越了之前的各种方法,而且Transformers 库提供了非常易于访问的预训练模型。spaCy 是我们喜欢的自然语言处理库。自2016 年版发布以来,spaCy 的用户数量一直在增长。尽管这是一个开源库,但主要由Explosion 公司(https://explosion.ai)负责开发。他们提供了多种语言的词性标记、依赖解析与命名实体识别方面的预训练神经语言模型。本书案例的开发使用了spaCy 2.3.2 版,尤其是在数据准备(第4 章)和知识提取(第12 章)方面。在本书发行之际,spaCy 3.0 推出了全新的基于transformer 的模型,而且支持PyTorch 和TensorFlow 的自定义模型以及定义端到端工作流的模板。我们还用到了另一个自然语言处理库Gensim(https://oreil.ly/YJ4Pz),该库由Radim ?eh??ek 负责维护。Gensim 侧重于语义分析,而且还提供了学习主题模型(第8 章)和单词嵌入(第10 章)所需的所有功能。自然语言处理方面的库还有很多,它们都有各自的用途,本书会做简单的介绍,其中包括NLTK(功能丰富的老牌Python 自然语言处理库)、TextBlob(易于上手)、斯坦福大学的Stanza 和CoreNLP,还有Flair(的高级模型)。我们无法仅通过本书介绍所有的库,但我们会选择介绍一些我们认为效果好的库。推荐书单本书侧重于实际的解决方案,如果你想深入细节或了解本书未能涵盖的主题,则可以参考一些其他的书籍。以下是我们推荐阅读的书单:《Practical Natural Language Processing》,作者:Sowmya Vajjala,Bodhisattwa Majumder,Anuj Gupta 与Harshit Surana(O’Reilly 出版,2020 年),ISBN978-1-492-05405-4。《Natural Language Processing in Action》,作者:Hobson Lane,Cole Howard 与Hannes Hapke(Manning Publications 出版,2019 年),ISBN 978-1-617-29463-1。《Mining the Social Web, 3rd Edition》,作者:Matthew A. Russell 与Mikhail Klassen(O’Reilly 出版,2019 年),ISBN 978-1-491-98504-5。《Applied Text Analysis with Python》,作者:Benjamin Bengfort,Rebecca Bilbro与Tony Ojeda(O’Reilly 出版,2018 年),ISBN 978-1-491-96304-3。《Python for Data Analysis, 2nd Edition》,作者:Wes McKinney(O’Reilly,2017 年),ISBN 978-1-491-95766-0。排版约定本书使用了下述排版约定。斜体(Italic)表示新术语、URL、电子邮件地址、文件名和扩展名。等宽字体(Constant Width)表示程序片段,以及正文中出现的变量、函数名、数据库、数据类型、环境变量、语句和关键字等。加粗等宽字体(constant width bold)表示应该由用户输入的命令或其他文本。等宽斜体(constant width italic)表示应该由用户输入的值或根据上下文确定的值替换的文本。使用代码示例本书提供的案例可供读者自由使用。因此,我们通过GitHub 存储库提供了本书所有的代码:https://oreil.ly/btap-code。本书的每个章节都提供了可执行的Jupyter notebook 代码,可能有一些附加的函数或案例被省略了。此外,本书的GitHub 存储库还提供了必要的数据集以及额外的信息。简单的运行notebook 的方式是使用谷歌的机器学习公共云平台:Google Colab(https://oreil.ly/colab)。你甚至不需要在本地计算机上安装Python,只需单击GitHub 上相应章节的Colab 链接(但是需要谷歌账号)。但是,我们还在GitHub存储库中添加了有关设置(虚拟)Python 环境的说明。我们设计的Jupyter notebook既可以在本地上运行,也可以在Google Colab 上运行。本书所使用的库、数据和网页都在不断变化。因此,即便你一字不差地复制本书中的代码,也可能会出现无法正常运行的情况。为了解决这个问题,我们会努力保持存储库的更新。如果你发现任何技术问题或改进代码的建议,请随时在存储库内创建议题,并发送拉取请求给我们。如果你对本书代码示例的使用有任何技术问题或困难, 请发送电子邮件到bookquestions@oreilly.com。如果遇到技术问题,我们建议你在GitHub 存储库内创建议题(https://oreil.ly/ApUgF),有关书中的错误请参阅参阅O’Reilly 的勘误页面。本书的目的是帮助你完成工作。一般来说,你可以在自己的程序或者文档中使用本书附带的示例代码。你无需联系我们获得使用许可,除非你要复制大量的代码。例如,使用本书中的多个代码片段编写程序就无需获得许可。但以CD-ROM 的形式销售或者分发O’Reilly 书中的示例代码则需要获得许可。回答问题时援引本书内容以及书中示例代码,无需获得许可。在你自己的项目文档中使用本书大量的示例代码时,则需要获得许可。我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和国际标准图书编号。例如:“Blueprints for Text Analytics Using Python by Jens Albrecht, Sidharth Ramachandran, and Christian Winkler (O’Reilly, 2021), 978-1-492-07408-3”。如果你觉得自身情况不在合理使用或上述允许的范围内,请通过邮件和我们联系,地址是 permissions@oreilly.com。O’Reilly 在线学习平台(O’Reilly Online Learning)近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。公司独有的专家和改革创新者网络通过O’Reilly 书籍、文章以及在线学习平台,分享他们的专业知识和实践经验。O’Reilly 在线学习平台按照您的需要提供实时培训课程、深入学习渠道、交互式编程环境以及来自O’Reilly 和其他200 多家出版商的大量书籍与视频资料。更多信息,请访问网站:https://www.oreilly.com/。联系我们任何有关本书的意见或疑问,请按照以下地址联系出版社。美国:O’Reilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中国:北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)奥莱利技术咨询(北京)有限公司本书有专属网页,你可以在那儿找到本书的勘误、示例和其他信息。地址是:https://oreil.ly/text-analytics-with-python。如果你对本书有一些评论或技术上的建议,请发送电子邮件到errata@oreilly.com.cn。要了解O’Reilly 的图书和培训课程的新闻和信息,请访问我们的网站,地址是:http://www.oreilly.com。我们的Facebook:http://facebook.com/oreilly。我们的Twitter:http://twitter.com/oreillymedia。我们的Youtube:http://www.youtube.com/oreillymedia。致谢创作书籍无论对作者本身还是家人和朋友来说都是一项挑战。我们明白这个过程需要付出大量的时间,但是在编写每个章节的时候,我们还是很惊讶居然花费了这么多时间。由于我们都有全职工作,因此我们牺牲掉了陪伴家人的时间来讨论本书的创作,编写相应的代码,并反复修改书中的内容。很荣幸此次能有机会与O’Reilly 合作。从初的提案开始,在整个创作过程乃至到后的出版,我们都很享受与众多专业人员的共事,他们的建议让我们受益匪浅。对我们来说,紧张的工作莫过于各个章节的创作。在这段时间里,我们得到了编辑Amelia Blevins 的无私支持。本书得以付梓,我们非常感谢她的帮助。此外, 我们还要感谢审稿人Oliver Zeigermann、Benjamin Bock、Alexander Schneider 和Darren Cook。他们利用各自的专业知识,付出了大量时间,为我们提供了很多中肯的建议和意见,并发现了文本与代码中的一些错误。由于我们使用了各个库中的功能,因此有时会遇到各种问题或不兼容。我们采用了spaCy 作为分析的核心组件, Explosion 团队(Ines Montani,Sofie Van Landeghem 和Adriane Boyd)给予了非常积极的响应,与他们的合作非常愉快。他们针对spaCy 提供了非常有帮助性的评论。后,我们还要感谢Burton DeWilde(textacy 背后的开发人员)帮忙检查了我们的部分代码。
Jens Albrecht是纽伦堡理工学院计算机科学系的全职教授。主要从事数据管理与分析领域的研究,尤其侧重于文本分析。
Sidharth Ramachandran负责领导一个数据科学家团队,主要为消费品行业构建数据产品。他拥有十多年电信、银行以及市场营销等领域软件工程与数据科学的工作经验。
Christian Winkler是一位数据科学家与和机器学习架构师。他拥有理论物理学博士学位,在大数据与人工智能领域工作了20多年。
目录
前言 . 1
第1 章 洞悉文本数据 11
1.1 本章内容概要 .11
1.2 探索性数据分析 12
1.3 数据集简介 13
1.4 案例:使用Pandas 获取数据概要 14
1.4.1 计算列的汇总统计结果 15
1.4.2 检查缺少的数据 16
1.4.3 绘制值的分布图 17
1.4.4 比较各个类别的分布 .18
1.4.5 可视化一段时间内的变化 19
1.5 案例:构建简单的文本预处理流水线 21
1.5.1 使用正则表达式分词 .21
1.5.2 删除停用词 .22
1.5.3 通过一行代码处理流水线 24
1.6 词频分析案例 .26
1.6.1 案例:使用Counter 统计单词个数 26
1.6.2 案例:创建词频图 29
1.6.3 案例:创建词云 30
1.6.4 案例:TF-IDF 排名 32
1.7 案例:查找上下文关键字 .35
1.8 案例:n 元语法分析 37
1.9 案例:比较不同时间段和类别的词频 40
1.9.1 创建词频时间表 40
1.9.2 创建词频热图 42
1.10 小结 44
第2 章 利用API 提取文本 45
2.1 本章内容概要 .45
2.2 应用程序编程接口 45
2.3 案例:使用requests 模块通过API 提取数据 .47
2.3.1 分页 52
2.3.2 速率限制53
2.4 案例:使用Tweepy 提取推特数据 57
2.4.1 获取凭证58
2.4.2 安装与配置Tweepy 59
2.4.3 通过Search API 提取数据 60
2.4.4 从用户的时间线中提取数据 64
2.4.5 通过流API 提取数据 66
2.5 小结 .69
第3 章 网页抓取与数据提取 71
3.1 本章内容概要 .71
3.2 抓取网页与提取数据 72
3.3 路透社新闻存档简介 73
3.4 URL 生成 75
3.5 案例:下载和解读robots.txt 76
3.6 案例:从sitemap.xml 中寻找URL .77
3.7 案例:通过RSS 查找URL 79
3.8 下载数据 81
3.9 案例:使用Python 下载HTML 页面 .82
3.10 案例:利用wget 下载HTML 页面 83
3.11 提取半结构化数据 .84
3.12 案例:通过正则表达式提取数据 85
3.13 案例:使用HTML 解析器提取数据 86
3.14 案例:爬虫 94
3.14.1 案例介绍 94
3.14.2 错误处理与生产级质量的软件 97
3.15 基于密度的文本提取 98
3.15.1 利用Readability 读取路透社的内容 98
3.15.2 总结基于密度的文本提取100
3.16 一体化解决方案 100
3.17 案例:使用Scrapy 抓取路透社的存档 .101
3.18 爬虫面临的难题 103
3.19 总结和建议 .104
第4 章 准备统计和机器学习的文本数据 105
4.1 本章内容概要 105
4.2 数据预处理流水线 .106
4.3 数据集介绍:Reddit Self-Posts 107
4.3.1 将数据加载到Pandas .107
4.3.2 案例:标准化属性名称 .107
4.3.3 保存和加载数据框 109
4.4 清理文本数据 110
4.4.1 案例:使用正则表达式识别噪声 . 111
4.4.2 案例:使用正则表达式剔除噪声 . 113
4.4.3 案例:使用textacy 规范化字符 115
4.4.4 案例:使用textacy 根据模式遮挡数据 . 116
4.5 分词 118
4.5.1 案例:使用正则表达式分词 118
4.5.2 NLTK 分词 120
4.5.3 分词建议120
4.6 spaCy 的语言处理 .121
4.6.1 实例化流水线 .122
4.6.2 处理文本123
4.6.3 案例:自定义分词 125
4.6.4 案例:处理停用词 127
4.6.5 案例:根据词性提取词元 128
4.6.6 案例:提取名词短语 131
4.6.7 案例:提取命名实体 132
4.7 大型数据集的特征提取 134
O\'Reilly:Python文本分析
全新保定
¥ 91.30
O Reilly:Python文本分析
全新广州
¥ 57.36
O\'Reilly:Python文本分析
全新嘉兴
¥ 43.85
O\'Reilly:Python文本分析
全新无锡
¥ 44.41
O\'Reilly:Python文本分析
全新济宁
¥ 35.75
O\'Reilly:Python文本分析
九五品郑州
¥ 38.00
O\'Reilly:Python文本分析
八五品嘉兴
¥ 40.00
O\'Reilly:Python文本分析
全新北京
¥ 70.40
O\'Reilly:Python文本分析
全新武汉
¥ 66.72
O\'Reilly:Python文本分析
全新天津
¥ 43.96
— 没有更多了 —
以下为对购买帮助不大的评价