自然语言处理这一主题下有很多畅销书,其中一些用作教科书,侧重于理论方面;另一些则旨在通过大量代码示例来介绍自然语言处理的概念;还有一些则专注于特定的自然语言处理库或机器学习库,并提供使用这些库来解决不同自然语言处理问题的“操作指南”。那么,为什么还要再写一本关于自然语言处理的书?

十多年来,我们一直在重点大学和头部技术公司构建和扩展自然语言处理解决方案。在指导同事和其他工程师时,我们注意到新工程师,尤其是自然语言处理新手的个人技能和自然语言处理的行业标准之间存在差距。后来我们为专业人士举办了很多场自然语言处理研讨会,并从中注意到,业务部和工程部的负责人身上也存在这种实际技能和行业标准之间的差距,这加深了我们对此问题的理解。

大多数在线课程和图书只使用简单的用例和常见的数据集(通常是干净且定义良好的大型数据集)来解决自然语言处理问题。虽然这样也能传授自然语言处理的一般方法,但是我们不认为这样能提供足够的基础知识来解决新的问题,并在现实世界中开发特定的解决方案。我们发现,在构建实际应用程序时遇到的常见问题,如数据收集、噪声数据/信号处理、解决方案的增量开发以及将解决方案部署到大型应用程序的相关问题,在现有的资源中并没有涉及。我们还发现,在大多数情况下,开发自然语言处理系统的最佳实践也是缺失的。因此,我们认为需要写一本书来补充相关知识,这也是本书诞生的原因。