非科班出身,自学撸出中文分词库,GitHub标星1.7万,这是他入门NLP的秘籍
Posted 程序人生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了非科班出身,自学撸出中文分词库,GitHub标星1.7万,这是他入门NLP的秘籍相关的知识,希望对你有一定的参考价值。
人工智能领域有一句话叫:让计算机理解自然语言是人工智能皇冠上的明珠。理解人类的自然语言,需要关于外在世界的广泛知识,以及运用这些知识的能力,因而,自然语言处理(Natural Language Processing,NLP)被视为人工智能中最具挑战也是最具魅力的问题之一 。
在人工智能背景技术下,随着智能设备和数据量的空前增长,通过语音和语言进行人机交互需求也在急速增长——人机对话、机器阅读、自动写作等新兴的内容领域,自然语言处理(NLP)技术越来越被看好。当前市场对NLP技术人才的需求非常急迫,预计这种状态将持续5-10年,可以说,属于自然语言处理的黄金时代来了!
不少人准备入坑NLP,却面临非常尴尬的学习境地——网上的学习资料以英文为基础的居多,而中文的处理要比英文复杂得多,如何才能少走弯路,高效入门中文NLP呢?
HanLP中文分词库开发者何晗的实战经验很值得借鉴。
截至 2020 年1月,HanLP项目在 GitHub Star 数达到了 17.8K,超过了宾夕法尼亚大学的 NLTK、斯坦福大学的 CoreNLP。
何晗在开发这款 NLP 工具包时,还是上海外国语大学一名日语专业的大二学生,HanLP项目脱胎他大学时接的一份兼职,何晗也因缘从一个非科班专业的小白逐步成长为NLP领域的专家。如今,正在攻读CS博士的他(研究方向:句法分析、语义分析与问答系统),结合自己的学习历程和HanLP的开发经验创作出版了《自然语言处理入门》一书,得到了周明、刘群、王斌等业内顶级 NLP 专家的推荐。
从着手开发HanLP,到HanLP达到工业使用的水准,何晗对自学NLP有深刻的见解。如果用一句话来总结,那就是:自顶而下,从工程去切入,由应用层往下面的基础层拓展,递归补充理论知识,才能事半功倍。以下是何晗入门NLP的经验分享,希望对初学的你有所启发。
初学者,请避开自学NLP的常见误区
有的初学者排斥基础理论——认为学校教的都是没用的,公司里都用不到;
有的初学者对基础理论敬而远之——认为理论太高深了,自己基础不好,学了也白学;
有的初学者,特别是已经工作的程序员,基本方向正确但学习路径错误,比较容易走极端:
在工作很忙的情况下,只是抱着经典书籍苦啃,直到筋疲力尽项目也毫无进展,从而丧失了学习NLP的兴趣;
或者,俗称调库小能手,跟风潮流,缺少理论基础,缺乏独立思考能力(比如,认为深度学习最牛,其他的基础理论都是垃圾;认为CNN/RNN/BERT会调参就行了)。
而实际上,自然语言处理是计算机科学、人工智能和语言学学科的交集,这三方面的学科知识都是需要储备的,基础理论的学习必不可少。但很多初学者都是在工作之后才入坑NLP,既难以静下心来啃书啃课,又缺少很好的老师传授知识经验。所以,有效可行的入门方式就是从工程切入,遵循这样的逻辑:延迟加载,只在使用的时候才去加载必要的资料:
你首先看到的是一个摸得着的实际问题,为了解决该问题才去接触一个具体的方案;
为了理解这个方案,才会引入必要的背景知识;
为了实现这个方案,才会引入相关细节;
为了克服这个方案的问题,才会过渡到新的方案。
想快速入门NLP,边学边做疗效好
何晗入门NLP,读过的经典书有:《统计自然语言处理》(宗成庆 著)(对应语言学知识)、《统计学习方法》(李航 著)(对应人工智能知识),《挑战程序设计竞赛》(秋叶拓哉、盐田阳一、北川宜稔 著)(对应计算机算法知识)。
不过,在看经典书籍的过程中,他发现,学习自然语言处理并不需要完全把这几本书看透,最好是可以边看书边做项目。这些书都是非常牛的好书,然而可惜的是,看完书中的章节,不知该如何应用其中的知识点,即使实现了文章中提到的模型,也很难直接将其运用于工程项目。
想必很多初学者都面临类似的学习困惑。为了解决这个问题,何晗动手写了《自然语言处理入门》,目的就是希望学习者看完一章后,便可以将知识点直接用于项目,适合NLP初学者入门并快速布置到生产环境中。成效快,痛苦小,疑问少。
何晗在《自然语言处理入门》一书中,以自己的HanLP开源项目为案例,代码对照公式讲解每一个算法每一个模型,让入门者带着工程思维理解NLP的知识要点,试图在目前市面上艰深晦涩的教科书和简单的入门书之间作出平衡。
《自然语言处理入门》
扫码购买
《自然语言处理入门》带领学习者从基本概念入手。逐步介绍中文分词、词性标注、命名实体识别、信息抽取、文本聚类、文本分类、句法分析这几个热门问题的算法原理和工程实现。通过对多种算法的讲解和实现,比较各自的优缺点和适用场景。这些实现并非教学专用,而是生产级别的成熟代码,可以直接用于实际项目。
在理解这些热门问题的算法后,这本书会引导学习者根据自己的项目需求拓展新功能,最终达到理论和实践上的同步入门。
何晗认为,NLP的学习路径,应该尊重一般人的认知规律,而不是学术上的纲目顺序,以此为宗旨来编排图书的内容。因此,面向普通程序员,这本书内容分为以下三大部分:
第一部分介绍一些字符串算法,让普通程序员从算法的角度思考中文信息处理。
第二部分由易到难地讲解一些常用的机器学习模型,让算法工程师晋级为机器学习工程师。由中文分词贯穿始终,构成一种探索式的递进学习。这些模型也并非局限于中文分词,会在第三部分应用到更多的自然语言处理问题上去。
第三部分新增了许多与文本处理紧密相关的算法,让机器学习工程师进化到自然语言处理工程师。特别地,最后一章介绍了当前流行的深度学习方法,起到扩展视野、承上启下的作用。学习者可根据自身情况,灵活跳过部分章节。
何晗在自学过程中走过不少弯路,深知数学语言的艰深晦涩,并且痛恨罗列公式故作高深的文章,所以他在书中只保留了必不可少的公式和推导,并且公式与代码相互印证。配套代码由Java和Python双语言写成,与GitHub上最新代码同步更新,所以你只要具备基本的编程经验,就可以跟随书本零起点入门。
此外,何晗还总结出一份最为详尽的NLP+ML“双生树”思维导图,导图中的关联知识点不仅涵盖NLP领域的核心知识,甚至涉及许多前沿研究和应用,印刷尺寸宽60cm,高74cm,随书附赠供学习者参考。
进阶NLP的学习资料和工具推荐
推荐读这些经典书籍:
多读论文,推荐用Google Scholar和Papers检索:
追踪前沿动态,推荐NLP-progress,在各项NLP任务上的排行榜
网址:https://nlpprogress.com/
一个中肯的建议:NLP没有通用的解法,算法不够,语料来补
算法不是万能的。(想想:一两个百分点对实际业务有多少帮助,又增加了多少成本?)
不要完全相信论文。(a. 不要相信不公开源代码的论文; b. 不要相信公开源代码但数据预处理作假的论文; c. 即使能跑出作者宣称的分数,请考虑:模型是否能泛化到你的行业领域? 又增加了多少成本?)
语料极其重要。(a. 语料几乎可以把准确率提升到你期望的任何水准,只要数量质量足够; b. 目前通用语料几乎都是新闻,谁能标注出行业语料,谁就是大王; c. 深度学习时代,无标注的纯文本语料也大有用场; d. 软件工程2.0:用数据编程。)
《自然语言处理入门》
扫码购买
《自然语言处理入门》,一本你一定能看懂的 NLP 图书:
内容务实,图文并茂,算法、公式、代码相互印证,Java 与 Python 双实现;
学习路径清晰,尊重初学者认知规律,简单易懂好上手,双色印刷阅读体验佳。
HanLP 作者何晗汇集多年经验,从基本概念出发,逐步介绍中文分词、词性标注、命名实体识别、信 息抽取、文本聚类、文本分类、句法分析这几个热门问题的算法原理与工程实现。书中通过对多种算法的讲解,比较了它们的优缺点和适用场景,同时详细演示生产级成熟代码,助你真正将自然语言处理应用在生产环境中。
你有这些疑问吗?
双色印刷,排版精致。
工业界和学术界人士的评价
工业界
最近几年NLP的研究进入高潮。很多人都想学习NLP但是不知道如何开始,目前国内NLP领域急需更多入门好书,HanLP作者何晗即将出版的这本《自然语言处理入门》值得一读。这本书比较系统地介绍了NLP的基础技术,深入浅出、容易理解,对初学者很有帮助。
——周明,微软亚洲研究院副院长,国际计算语言学会会长
自然语言处理是人工智能最核心也最具挑战的领域,我衷心希望有更多的人能加入这个领域的技术研究、开发、应用之中。相信何晗的这本《自然语言处理入门》会对大家有很大的帮助。本书以GitHub开源项目HanLP的代码实现为基础,介绍了从分词到句法分析再到深度学习的自然语言处理最基本的技术。本书叙述简洁清晰,讲解透彻深入,非常适合初学者。强烈推荐!
——李航,字节跳动人工智能实验室总监,《统计学习方法》作者
本书作者何晗原来也是一个自然语言的爱好者,现在已成为自然语言处理的专业人士,美国埃默里大学计算机科学专业的博士生。他自主开发了一套完全开放源代码的自然语言处理工具包HanLP,受到使用者的好评。这本书依托于HanLP工具包,从基本的概念和原理出发,讲解了自然语言处理中一些常用的问题和算法。我相信这本书融入了作者对这个领域各项技术的深刻理解和切身体会,一定会是一本非常好的入门书。
——刘群,华为诺亚方舟实验室语音语义首席科学家
这本书不仅介绍了NLP的任务及算法,也提供了可以实际运行的生产级代码,非常适合NLP初学者入门并快速布置到生产环境。本书的文字十分流畅,连标点符号都鲜有错误,展示了作者严谨的写作态度和极强的文字能力。虽然本书深度学习相关的篇幅不多,但是了解传统的NLP方法能够大大提升对问题的理解能力,推荐阅读!
——王斌,小米人工智能实验室主任、NLP首席科学家
几年前,第一次得知HanLP的作者何晗是上外一名非科班同学时,我很吃惊。要知道,即使科班出身,要开发一个如此完备的NLP工具都相当有挑战,更不用说HanLP在中文NLP开源领域还相当成功了。而今,何晗在美国就读CS领域的博士,他在课余时间坚持写作,结合自己的学习历程和和HanLP的开发经验给大家呈现了一本不太一样的NLP入门书。我很乐意把这本书推荐给大家。
学术界
作者从实践的角度用通俗易懂的语言解释自然语言处理的概念,用应用实例和类程序语言描述算法,有鲜明的特色和很强的实用性,我相信这本书会深受读者的欢迎。
——宗成庆,中国科学院自动化研究所研究员、博士生导师,《统计自然语言处理》作者
近年来人工智能技术应用日益广泛深入,自然语言处理(NLP)也随之成为一门“显学”。作为教计算机学习理解和使用人类语言的学科,NLP在搜索引擎、推荐系统、社会计算、智能 音箱、机器翻译等几乎所有与“语言”有关的方向发挥着重要作用。由于人类语言的复杂特点, NLP所涉及的基础知识和技术非常多,虽然国内外有一些经典的教材,但与实际应用密切结合深入浅出讲授的著作凤毛麟角。本书作者是著名的中文NLP工具包HanLP的开发者,本书结合HanLP细致讲解NLP的关键技术,是上手NLP的优秀读物。我非常高兴将这本书推荐给对NLP感兴趣的朋友们。
——刘知远,清华大学副教授,MIT“35 岁以下科技创新35人”中国区榜单获得者
大数据与人工智能已经成为当今世界各国的战略必争之地,自然语言处理是人工智能科学皇冠上的明珠,大数据为自然语言处理的跨越式发展提供了算源与算力基础。HanLP吸收了我所开源的汉语分词系统ICTCLAS的精髓,何晗跟我深入讨论过我发表的论文,其学习能力与勤奋严谨给我留下了深刻印象。何晗结合HanLP宝贵的开发经验与NLP领域最新研究成果所写的这本书,是一部难得的NLP启蒙之作,推荐阅读。
——张华平,北京理工大学副教授、NLPIR-ICTCLAS创始人, 钱伟长中文信息处理科学技术奖一等奖获得者
《自然语言处理入门》
扫码购买
注:
物流已恢复正常,下单后,物流查询入口如下:
微信搜索小程序“码书商店”—>“我的”—>待收货
以上是关于非科班出身,自学撸出中文分词库,GitHub标星1.7万,这是他入门NLP的秘籍的主要内容,如果未能解决你的问题,请参考以下文章
阿里技术小组熬夜30天肝出来的Java面试手册!登顶Github标星288k