python和nltk自然语言处理 脚本之家_想要入门自然语言处理,资料贫瘠,英语不好,大神推荐斯坦福的真的是搞不定,迷迷茫茫,不知从何下手?...

发布于:2023-07-27 ⋅ 阅读:(128) ⋅ 点赞:(0)

不清楚题主定义的“入门”具体是什么层次。我认知中的入门一个领域有两种:第一种,知道核心概念大概含义并能调用工具,知其然而不知其所以然,这是知和用层面的入门;第二种,扎实掌握领域涉及到的基础知识,对于最前沿的、高深的知识尚未掌握,但能快速学习,这是学习层面上的入门。我认为多数人在初步学习时,是第一种入门,它对学习者更友好,但也很容易使人飘飘然,一些段子里被嘲讽的也多是到了这个阶段便认为自己掌握了一个领域的知识的人。但这种入门仍旧是必不可少的,我也相信从知和用层面的入门,到学习层面上的入门,对于没有基础但兴致勃勃的初学者,是更合适的一条路。

第二种入门比较简单粗暴,比较苦,前期学习成本很大,更适合科班出身,有环境基础的人,所以我来主要针对第一种入门,说说如何从直观上了解NLP的概念,到基本知道NLP涉及的各种概念的粗略含义,以及能查文档调用包做些简单NLP处理,把这个层次的处理和自己想做的事结合起来。再后面如果真的想深入学习,还是老老实实打基础吧。本文如有疏漏错误,望大佬们不吝赐教。

一、了解概念:直观和宏观

这里我假定一个学习者是对NLP毫无概念,甚至微积分、编程也一无所知,再加上题主的描述,英语也不太好,但他想要学习NLP。好吧,我们得承认这么多条件限制下来,这确实是条荆棘满布之路。但既然这位学习者打算在这方面有所增益,那他起码是了解到了NLP的一些比较贴近日常的应用,如机器翻译,并产生了兴趣。而这个水平的学习者也一定对其它没有那么贴近日常的,或者说更底层一些的应用,如NER(命名实体识别),词性标注,句法分析,是没有认知的;也不清楚NLP具体从微观到宏观,都能做些什么,目标又是哪些;更对具体的技术如机器学习、深度学习一头雾水。直接开始学习时,会感到NLP的方向茫茫多,要补的知识也浩如烟海,最终不由自主地陷入多歧亡羊中去。因此,第一步更应该去了解一些历史以及科普性质的综述。这里需要再一次强调的是,我认为这样基础的学习者是能很快掌握NLP的一些基础概念和简单应用的,哪怕是很前沿的知识,也是应该有办法让更多人有个简单了解的。但要意识到这和就业、研究仍有着十万八千里之遥。

这样的科普和历史介绍有:吴恩达 AI for Everyone Week3 09(中文字幕)

这一集介绍了AI的各种细分应用包括CV、NLP等,及这些应用更细分的领域。如果这名学习者对AI的概念同样一无所知,那么他不妨把整个课程快速地看一遍,内容很简单,几个小时便可以看完,这时他能直观上大概明白机器学习、深度学习干了什么,不能干什么。

《Aminer2018自然语言处理研究报告》

这份清华大学和中国工程院知识智能联合实验室发布的报告大概60页,包含概述篇、技术篇、人才篇、应用篇、趋势篇。这份报告介绍较浅显,比较平实。很好的一点是,它的人才篇提醒了我们一件事,如果想要深入了解一个领域,那么知道这个领域内有哪些大牛,也是一件很重要的事。

计算机科学速成课 36 自然语言处理(中文字幕)

这个不需要太多介绍了,一个简短的科普视频,可以边吃饭边看。CrashCourse是很好的扩充知识面的系列,包罗万象,也推荐给大家。

P.S. 写到这里我发现一件比较苦恼的事,不知是不是我的错觉,中文的优质科普内容确实比英文要少和难找,这个深度的科普配上中文字幕不难理解,我列出的基本是中文资料,但还是希望有需要的读者朋友从这里开始,尽早适应英文资料,这是更适合长远学习的方式,当然,我也希望中文的优质产出越来越多。《自然语言处理综论(第二版)》译者序

这三个材料我归为一类,因为这三本书都是经典的教材,三篇文章(不是书)的作者也均是冯志伟先生。不需要现在就看教材正文,先学习一下冯先生高屋建瓴的综述。值得说明的一点是,冯先生不仅仅从历史、技术的角度梳理了NLP的发展,更补充了一些基本的语言学概念和知识,从规则到统计,语言学的一些基础概念仍旧是有用的。我想一个全面而非偏向性的了解是更应提倡的。

二、至少得会点编程

经过第一部分的内容灌输,学习者现在知道了什么是NLU,什么是NLG,知道了NLP的主要应用,但是我们假想中的这位学习者基础实在太差了,为了我们接下来可以做一些简单应用,做到知后能用,编程仍然是逃不掉的,学学Python吧。跟着廖雪峰的教程,或者《Python编程:从入门到实践》快速学习一遍就好。

题主我猜可以跳过这步。

如果读者是一位语言学的学生,学完Python基础语法,也可以看看《语料库与Python应用》或许可以帮助到你的研究,免去一些语料库软件的死板限制。

三、实操应用:调用和细化

将第一部分涉及到的知识进一步巩固、细化,同时开始上手写代码了。我提倡能看到每步学习成果的方式,而运行代码是一个很好的方式。记住我们的目的,只是了解概念与掌握简单应用,这时候我们仍旧不需要太多关注底层细节和太多的复杂公式,饭要一口一口吃,先当个调包侠没关系的。《自然语言处理入门》

何晗这本书基于他开发的一个开源NLP库HanLP撰写,该库被工业界广泛应用。书中给出了Python和Java两种实现,讲述内容的难度也可以说是从零开始,数学上只列出必不可少的公式,来保证作者所强调的“递归深入”式学习。我很理解刚学完Python基础语法后的人的迷茫感,所以这种给出源代码的书更适合这个水平的人学习,能很快地从代码里感受公式和理论的实现与应用。

《Python自然语言处理》

这是基于另一个广泛使用的库NLTK的实践手册,相比于何晗的书,这本缺少了理论的介绍。NLTK本身的缺点也不少,但对于基础的应用已经足够了,也能让我们学习很久了。但是这本书据说翻译不太行,再次敲黑板,英语很有用!

这个阶段,除了实操,还有一个关键词是细化。NLP可研究的路径实在很多,有了现在的了解后,最好细化到一个方向去针对性学习。《2016中文信息处理发展报告》

这是份由中国中文信息学会发布,是更深入,更细化的硬核科普,共150余页,详细介绍了NLP(特别是在中文方面)的各项技术。相比第一部分的科普,它的术语量巨大,更细粒度地介绍了很多方向,是能帮助学习者进一步了解细分领域和技术细节的材料。

如何高效地在网上找开源项目做

现在学习者可以根据他的具体需要,在GitHub上搜寻些脚本,阅读、学习、以及下载后做些小改动来满足自己的需要了,但这里不涉及更多自主编程了,工程能力是另一个很大很难的话题。

四、向学习层面的入门进发

我认为到了这个阶段的开始,作为一个业余爱好者已经十分足够了,但如果想要做科研,追前沿,或者以工作为目标,那基础知识就需要补起来了。

我自己在这方面也不够格,需要大佬们的答案做补充。这里暂时略过更纯粹的数学、编程,单纯地说说NLP理论相关的资料。实际上,这时候第一部分开头提到的教材便可以回头去看了,即:

第二本大部头非常厚,也可以综合参阅刘老师 @zibuyu9 列出的书单NLP入门推荐书目(2019版)。另一方面,到了这个地步,我认为带有中文字幕的CS224N等课程也是可以学习的了,除非数学实在太差太差了,那就只能俯下身来,慢慢补习吧,急不得的。关于CS224N的学习,我推荐 @夕小瑶 大佬的公益项目,带着大家一起刷课,可以关注小姐姐的公众号~

顺带一提,我看到B站有贪心科技的NLP训练营,简直是从零讲起,但这个是侵犯版权的,我便不列出链接了。

祝学习愉快!


网站公告

今日签到

点亮在社区的每一天
去签到