前言
本书旨在将新手带入自然语言处理(Natural Language Processing,NLP)和深度学习的领域,为读者打造涵盖这两个领域关键主题的试验台。如今,这两个主题领域都呈指数增长状态。在介绍深度学习和NLP 并着重于实现的同时,这本书定位于重要的中间立场。写这本书时,我们在省去哪些材料上做出了十分艰难的选择。对于初学者而言,我们希望本书能帮助你打下坚实的知识基础,并让你认识到更高级实现的可能性。机器学习,尤其是深度学习,是一门与知识科学不同的经验学科。每章中大量的端到端代码示例可以让你更好地参与到编程体验中来。
当我们开始编写本书时,我们从PyTorch 0.2 开始。 随着PyTorch 从0.2 更新到0.4,我们也在修订我们的示例。PyTorch 1.0 即将在本书发行时发布。本书中的代码示例与PyTorch 0.4 兼容,并应与即将发布的PyTorch 1.0 版本一起使用。注1
关于本书风格的注释。我们在大多数地方有意避免使用数学,不是因为深度学习数学特别困难(其实没有那么难),而是因为它在许多情况下都偏离了本书的主要目标——鼓励初学者。同样,在许多情况下,无论是在代码方面还是在文本方面,我们都倾向于详细阐述而非简洁。高级读者和经验丰富的编程人员可能有能力和方法简化代码,但是我们选择尽可能明确,以覆盖到接触本书的最广泛受众。
本书内容约定
在本书中,按以下约定进行排版:
斜体英文(Italic)
表示新名词、URL、电子邮件地址、文件名以及文件扩展名。
等宽英文字体(Constant width)
用于程序代码,以及在正文中引用变量、函数名称、数据类型、环境变量、语句、关键字等代码中的元素。
粗体等宽字体(Constant width bold)
需要用户输入的命令或其他文本。
斜体等宽字体(Constant width italic)
需要替换成用户自定义的值或根据上下文决定的值。
使用代码示例
补充材料(代码示例,练习等)可从以下网站下载:
https://nlproc.info/PyTorchNLPBook/repo/。
这本书可以帮助您完成工作。通常,如果本书提供了示例代码,则可以在程序和文档中使用它。除非您要复制大部分代码,否则无需与我们联系以获取许可。例如,编写使用本书中若干代码段的程序无需许可。以CD-ROM 形式出售或发布O’Reilly 书籍中的示例需要获得许可。引用本书并引用示例代码来回答问题无需许可。要将本书中的大量示例代码纳入产品的文档时需获得许可。
我们不强制要求署名,但如果你这么做,我们深表感激。署名一般包括书名、作者、出版社和国际标准书号(ISBN)。例如:“Natural LanguageProcessing with PyTorch by Delip Rao and Brian McMahan (O’Reilly).Copyright 2019, Delip Rao and Brian McMahan, 978-1-491-97823-8. ”。如果你觉得你对示例代码的使用行为超出了合理的方式或超出了上述的允许不获取授权的场景,可以与我们取得联系:permissions@oreilly.com。
O’Reilly 在线学习平台(O’Reilly Online Learning)
近40 年来,O’Reilly Media 致力于提供技术和商业培训、知识和卓越见解,来帮助众多公司取得成功。
我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及O’Reilly 和200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问http://oreilly.com。
联系我们
请将有关本书的建议和问题发送给出版社:
美国:
O’Reilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中国:
北京市西城区西直门南大街2号成铭大厦C座807室(100035)
奥莱利技术咨询(北京)有限公司
我们为本书提供了一个网页,上面有勘误表、示例和其他相关的信息,请访问:http://bit.ly/nlprocbk。
有关本书的建议或者技术问题,请发邮件到bookquestions@oreilly.com。
有关其他图书、讲座、会议、新闻的信息,请访问我们的网站:http://www.oreilly.com。
我们的Facebook:http://facebook.com/oreilly。
我们的Twitter:http://twitter.com/oreillymedia。
我们的YouTube:http://www.youtube.com/oreillymedia。
致谢
本书经历了各种各样的演变,本书的每个版本看上去都与以前的版本不同。每个版本涉及不同的人员(甚至不同的DL 框架)。
作者要感谢Goku Mohandas 最初参与本书的工作。在Goku 因工作原因不得不离开之前,Goku 为该项目投入了很多精力。Goku 对PyTorch 的热情和他的积极性无与伦比,作者想念与他共事的经历。我们期待他带来卓越的成绩!如果没有我们的技术评论员Liling Tan 和Debasish Gosh 的高质量反馈,这本书就无法达到如此的技术层次。Liling 贡献了他在先进的NLP 产品开发方面的专业知识,而Debasish 从开发人员的角度提供了非常有价值的反馈。我们同样感谢Alfredo Canziani,Soumith Chintala 和其他许多来自PyTorch 开发人员论坛的杰出人员所给予的鼓励。该社区对本书的许多见解的影响与我们自身的实践一样重要。
如果不感谢我们的编辑Jeff Bleiel 给予我们的出色支持,那会是我们的失职。没有他的指导,这本书就无法呈现在各位读者面前。Bob Russell 的文字编辑和Nan Barber 的产品支持将这份手稿从草稿转变成了可印刷的书。我们还要感谢Shannon Cutt 在本书早期所给予的支持。
书中的大部分内容都是根据作者在O’Reilly 的AI and Strata 会议上所提供的NLP 培训发展而来,该培训为期2 天。我们要感谢Ben Lorica,Jason Perdue和Sophia DeMartini 与我们一起参与培训。
Delip 非常感谢Brian McMahan 作为合著者。Brian 竭尽全力支持这本书的发展。这是一次与Brian 同甘共苦的旅程! Delip 还想感谢O’Reilly 的Ben Lorica 最初坚持要写一本关于NLP 的书。
Brian 要感谢Sara Manuel 的无尽支持,并感谢Delip Rao 作为推动本书完成的中坚力量。如果没有Delip 的坚持不懈和超凡毅力,就不会有现在这本书。