新書推薦: 
			  
			《 
			智慧储能革命 揭示储能行业的技术路线与底层逻辑 洞见能源革命的未来图景
			》 
			 售價:HK$ 
			86.9
			 
			 
	
			  
			《 
			身体知道幸福:发现感恩、幸福与喜悦的意想不到的方式
			》 
			 售價:HK$ 
			86.9
			 
			 
	
			  
			《 
			海外中国研究·道家与中国治道(国际汉学泰斗顾立雅集大成之作,一部打破哲学迷思的中国治道探源经典。开辟
			》 
			 售價:HK$ 
			63.8
			 
			 
	
			  
			《 
			人体雕塑解剖学
			》 
			 售價:HK$ 
			140.8
			 
			 
	
			  
			《 
			投喂AI:人工智能产业的全球底层工人纪实
			》 
			 售價:HK$ 
			75.9
			 
			 
	
			  
			《 
			诛仙.全6册(最新典藏版)
			》 
			 售價:HK$ 
			348.5
			 
			 
	
			  
			《 
			怦然心动的人生整理魔法·实践解惑篇2025版 修订本
			》 
			 售價:HK$ 
			54.8
			 
			 
	
			  
			《 
			修剪情绪藤蔓
			》 
			 售價:HK$ 
			76.9
			 
			 
	
 
       | 
     
      
      
         
          | 編輯推薦: | 
         
         
           
            如果你想构建一个使用自然语言文本的企业级应用程序,但不确定从哪里开始或使用什么工具,本书将帮助你入门。Wisecube的首席数据科学家Alex Thomas向软件工程师和数据科学家展示了如何使用深度学习和Apache Spark NLP库,来构建可扩展的自然语言处理(NLP)应用程序。
 通过在Spark处理框架上使用NLP的具体示例、实践,进行理论解释和动手练习,本书将会介绍从基本语言学和写作系统到情感分析和搜索引擎的所有内容。你还将探索一些开发基于文本的应用程序会遇到的特殊问题,例如性能等。
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
           
            本书介绍NLP基础知识和构建模块,然后再深入研究应用程序和系统构建。
來源:香港大書城megBookStore,http://www.megbook.com.hk 基础知识:了解自然语言处理、Apache Spark上的NLP和深度学习的基础知识。构建模块:学习构建 NLP 应用程序的技术(包括标记化、句子分割和命名实体识别),并了解它们的工作方式和原因。应用程序:探索构建你自己的NLP应用程序的设计、开发和实验过程。构建NLP系统:考虑生产和部署NLP模型的选项,包括支持哪些人类语言。
           | 
         
       
      
      
      
         
          | 關於作者: | 
         
         
          |  
            Alex Thomas是Wisecube的首席数据科学家。他将自然语言处理和机器学习与临床数据、身份数据、雇主和求职者数据,以及现在的生物化学数据结合使用。 Alex从Apache Spark 0.9版就开始使用,并使用过NLP库和框架,其中包括UIMA和OpenNLP。
           | 
         
       
      
      
      
      
         
          | 目錄: 
           | 
         
         
           
            目录
 前言 . 1
 第一部分 基础知识
 第1 章 快速入门 . 9
 1.1 简介 9
 1.2 其他工具 11
 1.3 建立你自己的开发环境 12
 1.3.1 前置条件 12
 1.3.2 启动Apache Spark 13
 1.3.3 检查代码 13
 1.4 熟悉Apache Spark .14
 1.4.1 使用Spark NLP 启动Apache Spark 14
 1.4.2 在Apache Spark 中加载和查看数据 15
 1.5 Spark NLP 的Hello World 示例 18
 第2 章 自然语言基础知识 27
 2.1 什么是自然语言 27
 2.1.1 语言的起源 28
 2.1.2 口头语言和书面语言29
 2.2 语言学 30
 2.2.1 语音学和音系学 .30
 2.2.2 词法学(形态学) 31
 2.2.3 语法 32
 2.2.4 语义学 .33
 2.3 社会语言学:方言、语域和其他变体 34
 2.3.1 礼节 34
 2.3.2 语境 35
 2.4 语用学 35
 2.4.1 罗曼雅各布森 .35
 2.4.2 如何运用语用学 .37
 2.5 书写系统 37
 2.5.1 起源 37
 2.5.2 字母 38
 2.5.3 辅音音素文字 .39
 2.5.4 元音附标文字 .40
 2.5.5 音节表 41
 2.5.6 标识象形符 .41
 2.6 编码 42
 2.6.1 ASCII 42
 2.6.2 Unicode 42
 2.6.3 UTF-8 43
 2.7 练习:分词 .44
 2.7.1 英语分词 44
 2.7.2 希腊语分词 45
 2.7.3 Geez(阿姆哈拉语)分词 45
 2.8 资源 46
 第3 章 Apache Spark 上的NLP 49
 3.1 并行性、并发性、分布式计算 .50
 3.1.1 Apache Hadoop 之前的并行化 53
 3.1.2 MapReduce 和 Apache Hadoop 53
 3.1.3 Apache Spark 55
 3.2 Apache Spark 架构 55
 3.2.1 物理架构 55
 3.2.2 逻辑架构 56
 3.3 Spark SQL 和Spark MLlib 62
 3.3.1 Transformer(转换器) .66
 3.3.2 评估器和模型 69
 3.3.3 预测结果评估 73
 3.4 NLP 库 .76
 3.4.1 功能库 .76
 3.4.2 注释库 .77
 3.4.3 其他库中的自然语言处理功能 78
 3.5 Spark NLP 78
 3.5.1 注释库 .78
 3.5.2 阶段 79
 3.5.3 预训练管道 87
 3.5.4 Finisher 89
 3.6 练习:构建主题模型 .91
 3.7 资源 93
 第4 章 深度学习基础知识 95
 4.1 梯度下降 100
 4.2 反向传播 101
 4.3 卷积神经网络CNN . 113
 4.3.1 滤波器 114
 4.3.2 池化 114
 4.4 循环神经网络RNN . 114
 4.4.1 通过时间的反向传播. 115
 4.4.2 Elman 网络 . 115
 4.4.3 LSTM 116
 4.5 练习1 . 116
 4.6 练习2 . 116
 4.7 资源 . 117
 第二部分 构建模块
 第5 章 文字处理 121
 5.1 分词 .122
 5.2 词表缩减 126
 5.2.1 词干提取 .126
 5.2.2 词形还原 .126
 5.2.3 词干提取对比词形还原 127
 5.2.4 拼写校对 .129
 5.2.5 标准化 130
 5.3 bag-of-words 模型.132
 5.4 CountVectorizer .133
 5.5 N-Gram 135
 5.6 可视化:Word 和文档分发 137
 5.7 练习 .142
 5.8 资源 .142
 第6 章 信息检索 143
 6.1 倒排索引 144
 6.2 向量空间模型 .151
 6.2.1 删除停用词 154
 6.2.2 逆向文件频率 156
 6.2.3 使用Spark 159
 6.3 练习 .159
 6.4 资源 .160
 第7 章 分类和回归 163
 7.1 bag-of-word 模型特征 .166
 7.2 正则表达式特征 167
 7.3 特征选择 169
 7.4 模型 .173
 7.4.1 朴素贝叶斯算法 174
 7.4.2 线性模型 .174
 7.4.3 决策/ 回归树.174
 7.4.4 深度学习算法 175
 7.5 迭代 .175
 7.6 练习 .178
 第8 章 使用Keras 的序列模型 181
 8.1 语句划分 182
 8.2 段落划分 190
 8.3 词性标注 191
 8.4 条件随机场 196
 8.5 分块和语法分析 196
 8.6 语言模型 197
 8.7 循环神经网络 .198
 8.8 练习:字符 N-Grams 模型 205
 8.9 练习:词义语言模型 206
 8.10 资源 206
 第9 章 信息提取 207
 9.1 命名实体识别 .207
 9.2 共指消解 217
 9.3 断言状态检测 .218
 9.4 关系提取 221
 9.5 小结 .226
 9.6 练习 .226
 第10 章 主题建模 . 229
 10.1 K-Means .230
 10.2 潜在语义索引 234
 10.3 非负矩阵分解 238
 10.4 隐含狄利克雷分布模型 242
 10.5 练习 245
 第11 章 词嵌入 . 249
 11.1 Word2vec 249
 11.2 GloVe 261
 11.3 fastText 262
 11.4 Transformer 263
 11.5 ELMo、BERT 和XLNet .263
 11.6 Doc2vec 265
 11.7 练习 266
 第三部分 应用
 第12 章 情感分析与情绪检测 269
 12.1 问题陈述与约束 269
 12.2 规划项目 .271
 12.3 设计解决方案 274
 12.4 实施解决方案 275
 12.5 测试并衡量解决方案 281
 12.5.1 业务指标 281
 12.5.2 以模型为中心的指标 281
 12.5.3 基础设施指标 .282
 12.5.4 过程指标 283
 12.5.5 离线与在线模型测量 284
 12.6 审查 284
 12.6.1 初始部署 285
 12.6.2 回退计划 286
 12.6.3 下一步 286
 12.7 结论 286
 第13 章 建立知识库 287
 13.1 问题陈述与约束 288
 13.2 规划项目 .289
 13.3 设计解决方案 290
 13.4 实施解决方案 291
 13.5 测试并衡量解决方案 300
 13.5.1 业务指标 300
 13.5.2 以模型为中心的指标 300
 13.5.3 基础设施指标 .301
 13.5.4 过程指标 301
 13.6 审查 302
 13.7 结论 302
 第14 章 搜索引擎 . 303
 14.1 问题陈述与约束 304
 14.2 规划项目 .304
 14.3 设计解决方案 305
 14.4 实施解决方案 305
 14.5 测试并衡量解决方案 313
 14.5.1 业务指标 313
 14.5.2 以模型为中心的指标 314
 14.6 审查 315
 14.7 结论 316
 第15 章 聊天机器人 317
 15.1 问题陈述与约束 318
 15.2 规划项目 .319
 15.3 设计解决方案 319
 15.4 实施解决方案 321
 15.5 测试并衡量解决方案 331
 15.5.1 业务指标 331
 15.5.2 以模型为中心的指标 332
 15.6 审查 332
 15.7 结论 332
 第16 章 目标字符识别 333
 16.1 OCR 任务的种类 333
 16.1.1 印刷文本的图像和PDF 识别成文本 333
 16.1.2 手写文本图像识别成文本 334
 16.1.3 日常环境中的文本图像识别成文本 334
 16.1.4 文本图像识别成目标 335
 16.1.5 关于不同书写系统的说明 336
 16.2 问题陈述与约束 336
 16.3 规划项目 .337
 16.4 实施解决方案 337
 16.5 测试并衡量解决方案 343
 16.6 以模型为中心的指标 343
 16.7 审查 343
 16.8 结论 343
 第四部分 构建NLP 系统
 第17 章 支持多种语言 347
 17.1 语言类型学 347
 17.2 场景:学术论文分类 347
 17.3 不同语言中的文本处理 348
 17.3.1 合成词 348
 17.3.2 形态复杂性349
 17.4 迁移学习与多语言深度学习 .350
 17.5 跨语种搜索 351
 17.6 检查清单 .352
 17.7 结论 353
 第18 章 人工标注 . 355
 18.1 指南 356
 18.2 场景:学术论文分类 356
 18.3 标注员内部一致性 .358
 18.4 标注迭代 .359
 18.5 标注文本 .360
 18.5.1 分类 .360
 18.5.2 标注 .360
 18.6 检查清单 .361
 18.7 结论 362
 第19 章 NLP 应用程序的产品化 . 363
 19.1 Spark NLP 模型缓存 .364
 19.2 Spark NLP 与TensorFlow 集成 365
 19.2.1 Spark 优化基础 .366
 19.2.2 设计级优化367
 19.2.3 分析工具 368
 19.2.4 监视 .369
 19.2.5 管理数据资源 .369
 19.2.6 测试基于NLP 的应用程序 369
 19.2.7 单元测试 370
 19.2.8 集成测试 370
 19.2.9 冒烟测试与健全测试 370
 19.2.10 性能测试 371
 19.2.11 可用性测试 371
 19.2.12 演示基于NLP 的应用程序 371
 19.3 检查清单 372
 19.3.1 模型部署清单 .372
 19.3.2 扩展和性能检查表 373
 19.3.3 测试检查清单 .373
 19.4 结论 374
 术语表 377
           | 
         
       
      
      
      
         
          | 內容試閱: 
           | 
         
         
           
            前言
 为什么自然语言处理既重要又很难
 自然语言处理(Natural Language Processing,NLP)是关于处理语言数据的研究领域。我们将关注文本,但是自然语言音频数据也是NLP 的一部分。处理自然语言文本数据是困难的,其原因是它依赖三个研究领域:语言学、软件工程和机器学习。对于大多数基于NLP 的项目来说,很难找到这三方面的专家。幸运的是,你不需要成为这三个领域的世界级专家就能对你的应用做出明智的决定。只要你了解一些基础知识,就可以使用专家构建的库来完成你的目标。想想在为向量和矩阵运算创建高效算法方面取得的进步。如果深度学习库使用的公共线性代数库不可用,想象一下深度学习革命要开始会有多难。尽管这些库意味着我们不需要为每个新项目实现缓存感知矩阵乘法,但仍然需要了解线性代数的基础知识,以及如何实现运算以充分利用这些库的基础知识。我相信NLP 和NLP 库的情况也是如此。
 由于使用的数据不同,使用自然语言(文本、口语和手势) 的应用程序总是与其他应用程序不同。这些应用程序的好处和吸引力在于有多少数据。人类一直在生产和搅动自然语言数据。困难的方面是,人们从字面上进化来检测自然语言使用中的错误,并且数据(文本、图像、音频和视频)不是在考虑计算机的情况下生成的。这些困难可以通过结合语言学、软件工程和机器学习来克服。
 本书处理文本数据。这是自然语言中最简单的数据类型,因为我们的计算机在设计时就考虑到了文本。话虽如此,我们还是要考虑很多不明显的大大小小的细节。
 背景
 几年前,我正在为O’Reilly 编写教程。本教程是关于在Apache Spark 上构建NLP管道的。当时,Apache Spark 2.0 还比较新,我主要使用的是1.6 版本。我认为使用新的DataFrames 和管道构建注释库会很酷,我无法在本教程中实现这一点。然而,我和我的朋友(也是教程的共同主持人)David Talby 讨论了这个问题,我们创建了一个设计文档。我没有足够的时间来建造库,所以我咨询了David 聘请来从事该项目的Saif Addin。随着项目的发展和发展,David、Claudiu Branzan(另一位朋友和同事)和我开始在会议和聚会上展示教程。似乎有兴趣了解更多关于库的知识,也有兴趣了解更多关于NLP 的知识。
 认识我的人都知道我很爱发牢骚,很少有话题能像NLP 以及它在技术行业中如何被使用和误用那样让我开始。我想这是因为我的背景。在成长过程中,我将语言学作为一种爱好来学习,这是一种非常耗费精力的爱好。当我上大学时,尽管我专注于数学,但我也学习了语言学课程。毕业前不久,我决定我也想学习计算机科学,这样我就可以利用我学到的理论概念来创造一些东西。一旦我开始从事这个行业,我就知道我可以将这三个兴趣合二为一:NLP。这让我对NLP 有了难得的认识,因为我先是单独研究了它的组成部分,然后再组合起来。
 我真的很高兴能写这本书,我希望这本书能帮助你构建你的下一个NLP 应用程序!
 哲学
 库的一个重要部分是人们应该建立自己的模型的想法。NLP 中没有一种万能的方法。如果想构建一个成功的 NLP 应用程序,你需要了解你的数据以及你的产品。预建模型对于初始版本、演示和教程很有用。这意味着,如果你想成功使用Spark NLP,将需要了解NLP 的工作原理。因此,在本书中,我们将不仅仅介绍Spark NLP API,还将讨论如何使用 Spark NLP,但也会讨论NLP 和深度学习是如何工作的。
 当将对NLP 的理解与以定制为目的而构建的库相结合时,你将能够构建实现你目标的NLP 应用程序。
 排版约定
 本书采用以下排版约定。
 斜体(Italic)
 表示新术语、URL、电子邮件地址、文件名和文件扩展名。
 等宽字体(Constant Width)
 表示程序清单,在段落内表示程序元素,例如变量、函数名称、数据库、数据类型、环境变量、语句和关键字。
 粗体等宽字体(Constant width bold)
 表示应由用户原封不动输入的命令或其他文本。
 斜体等宽字体(Constant width italic)
 表示应该替换成用户提供值的文本,或者由上下文决定的值。
 使用代码范例
 补充材料(代码示例、练习等)可在 https://oreil.ly/SparkNLP 下载。
 如果你有技术问题或使用代码示例的问题,请发送电子邮件至 bookquestions@oreilly.com。
 本书旨在帮助你完成工作。一般来说,如果本书提供了示例代码,你可以在你的程序和文档中使用它。除非你要复制代码的重要部分,否则你无需联系我们以获得许可。例如,编写一个使用本书中的多个代码块的程序不需要许可。销售或分发 O’Reilly书籍中的示例确实需要获得许可。通过引用本书和引用示例代码来回答问题不需要许可。将本书中的大量示例代码合并到你的产品文档中确实需要许可。
 我们很希望但并不强制要求你在引用本书内容时加上引用说明。引用说明一般包括书名、作者、出版社和ISBN,例如:“Natural Language Processing with Spark NLP by Alex Thomas (O’Reilly). Copyright 2020 Alex Thomas, 978-1-492-04776-6”。
 如果你认为你对代码示例的使用超出了合理使用或上述许可范围,请随时通过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 North
 Sebastopol, CA 95472
 中国:
 北京市西城区西直门南大街2 号成铭大厦C 座807 室(100035)
 奥莱利技术咨询(北京)有限公司
 我们为本书提供了一个网页,列出了勘误表、示例和任何其他信息。你可以通过https://oreil.ly/NLPSpark 访问此页面。
 对本书的评论或技术疑问,可以发电子邮件到errata@oreilly.com.cn。
 欲了解本社图书和课程的新闻和信息,请访问我们的网站http://oreilly.com。
 我们的Facebook:http://facebook.com/oreilly。
 我们的Twitter:http://twitter.com/oreillymedia。
 我们的YouTube:http://www.youtube.com/oreillymedia。
 致谢
 我要感谢O’Reilly Nicole Taché 和Gary O’Brien 的编辑们的帮助和支持。感谢技术审稿人,他们对本书的改版提供了很大帮助。还要感谢Mike Loukides 对启动这个项目的指导。
 我要感谢David Talby 的所有指导。感谢Saif Addin、Maziyar Panahi 和John Snow Labs 团队的其他成员,他们采用了David 和我的初始设计,并将其变成了一个成功且广泛使用的库。还要感谢Vishnu Vettrivel 在这个项目中的支持和建议。
 最后,我要感谢我的家人和朋友的耐心和鼓励。
           | 
         
       
      
        
     |