《自然语言处理入门》是图灵 2019 年 10 月出版的一本 NLP 领域的入门图书,作者是何晗(网名 hankcs,HanLP 作者、「码农场」博客博主)。图书上架之后得到了广大的读者的喜爱,在短短半年内,已经印刷了 6 次,总印数为 14 000。与此同时,这本书目前已经被三十多所学校的教师或者研究团队作为参考教材,或者大公司的 NLP 团队作为交流参考资料。不夸张地说,这本书在某种程度上满足了一大批读者的诉求,而此前图书市场上并没有图书做到这一点。

我们收到过很多朋友的致谢,非常荣幸这本书对这部分读者帮助如此之大。我们也收到过一些朋友三三两两的意见,反馈这本书在某些方面并没有达到他们的期望,非常感谢这些反馈和建议。大家的需求如此多样,而我们的书只能定位解决其中的一两个问题,更多问题,只能寄希望于出版更多图书。

但是,还有一小撮读者对这本书有一定的误解,甚至有读者买来图书都没有好好阅读就跑去豆瓣评了一星(这本书目前在豆瓣的评分是 8.8 分),大家知道,对于辛苦写作的作者和认真出版的出版方来说,这样的评论很扎心,也很无奈,因为你没办法跟做出这种行为的读者讲理——你想通过大家的意见认真提升图书品质,而他只不过是靠肤浅的认知随意过把嘴瘾。我能这么提这个问题是因为我试着按图索骥找到过其中两位读者咨询他们的意见,结果,你可能猜到了,他们甚至没有认真读过书,对于自己的“恶毒”评论也没说出个所以然来。

我也想借此提醒诸君,在豆瓣或者大众点评等网站上,尽量客观表达你的使用体验,如果能够做到有理有据那就更好了,这是为数不多能体现我们普通人影响力的地方。

书无完书,也不可能满足所有读者的阅读需求,只希望真正需要这这本书人都能找到这本书。

好了,说这么多,其实这篇文章的核心是为部分对《自然语言处理入门》有些许误解或者过度期待的读者简单解释一下,我原文转载了作者何晗的说明,请见如下。

各位读者大家好:

在大家的支持下,拙作《自然语言处理入门》 取得了些许成绩,包括印数、繁体中文版企划等,谢谢你们。

在读者群壮大的同时,我也收到了许多反馈。勘误类的反馈我在 《自然语言处理入门》勘误表 中一一答复并致谢。但一些两极化的评论也引发了我的一些担忧,在此我做一个统一的澄清。取决于读者自身的基础,产生了如下几种观点,我认为是不妥当的。

搞NLP只需看《自然语言处理入门》 就够了,比某某教材好

只看一本书肯定是不够的,拿《自然语言处理入门》 跟经典教材比也是不恰当的,拙作无意也无法取代经典教材。拙作定位是面向零基础读者的入门读物,相当于科普而非专著。专著中的定义、理论、推导证明等对零基础读者而言太难了。就入门而言,最重要的是兴趣而不是难度,所以读者看到的是一个通俗易懂的定位。同时,对有难度的部分,书里也有对专著的引用,请有志于深造的读者递归学习。

《自然语言处理入门》 不够深入,理论性不强

这一点还是取决于读者自身的基础。事实上,关于拙作究竟是太难了还是太简单了这一点,我听到了许多截然相反的评价。有ML或数理基础的读者倾向于认为拙作太简单,而部分一点数学都接受不了的读者则认为拙作太难。我诚恳地建议,NLP是ML的应用层,既不要过高地期待NLP入门书会深入ML理论的核心,也不要连ML的皮毛都畏难抗拒。正如介绍语所言,拙作仅允许必需的公式出现。拙作既没有写成ML和NLP的并集,也没有写成NLP与ML的差集,个人认为是符合入门的定位的。

《自然语言处理入门》 没怎么讲深度学习

惭愧,第十三章一定没有满足这部分读者。然而,深度学习是无论如何都不可能通过一章就讲清楚。数一数的话,线性代数基础需要一章、优化理论需要一章、词的分布表示需要一章、CNN/RNN/Transformer各需要一章、《自然语言处理入门》 1中涉及到的各种NLP任务各需要一章。基本上,CS224n有多少节课相应就需要多少章,这些章节加起来又是一本书了。另一方面,将这些内容加入到入门书里并不恰当。正如我在第一章所说,深度学习不是所有场景都适用,也不是所有企业都用得起深度学习,掌握传统机器学习有助于理解深度学习。深度学习有泡沫成分,本身也是一个理论不完备的领域,初学者不必急于求成。

《自然语言处理入门》 讲了很多HanLP的内容

这在部分读者看来是好事,在另一部分读者看来是缺点。理论是通用的,实现只选取一种。作为入门书,我觉得有责任提供正确实现还能用到生产项目里的代码。我在前言和试读中都有提到,自己写的代码自己讲得清楚,所以书里讲到HanLP的设计和实现是理所当然的事情。

总之,读者自我定位和本书的定位是否匹配非常重要,不必跟风购买。千言万语,总结为一句话,定位就是入门,不要抱有过度的期待。有任何批评和建议,尽管留言或私信。同时,方便的话,欢迎读者朋友去豆瓣留下公正的书评。