最近几个月,有很多同学都私信我,问我NLP到底应该怎么学,这两天我就根据自己的经验,做了一个简单的总结,导图在手机上看着可能比较小,大家可以在电脑上看,或者保存到手机再放大。如果第一次刷进来没有图,后退重进就好了,可能是因为图太大了。
要想学好NLP,首先应该对自己有一个比较全面的认识,在这里,我把所有学习NLP的人按照资历做了一个简单的分类。
没有任何基础的同学
对于没有任何基础的同学,首先要做的就是把自己的基础打牢,因为对于NLP的各个任务来讲,如果没有一个好的基础,那么在后面的学习以及工作的过程中是非常吃亏的。
对于基础,我们又可以将其分成4大类。
首先是数学基础,我们所讲的数学基础包括线性代数、概率论、离散数学和高等代数。线性代数和概率论对于机器学习来说是非常重要的,可以这么说,我们对于机器学习的大部分算法,都需要使用到这两部分内容。比如我们要做矩阵运算,进行矩阵分解,这些都是需要用到线性代数的知识;我们要对内容进行预测,一些常用的算法,例如朴素贝叶斯、逻辑回归等算法,都需要使用到概率论相关的知识;离散数学对于要设计一些比较复杂的算法,例如对于递归的应用等都是非常有帮助的。而对于高数来讲,主要是对于一些比较复杂的算法求解和论文复现中用的比较多,这几门课程也是大学里的必修课程。
其次就是Python基础。因为目前大部分AI相关任务都是使用Python来开发的,因此,学好Python是入门AI的前提,也是最基本的条件。很多人在学习编程语言的时候,都希望把这门编程语言中的所有内容都学会,首先我们不去谈有没有这个必要,单单是将所有的知识点中的一半学会对于一般人来讲都是不现实的。所以说,我们在学习Python的时候,并不是学什么用什么,而是用什么学什么。
对于机器学习和深度学习来讲也是如此,我们学习NLP的目的并不是要把机器学习和深度学习里面的所有内容都学成专家,而是根据自身的需求,先把其中的基础打牢,然后再选择其中一点继续攻破。
因此,第二步就是选择一个领域。在NLP中,我们可以把这些领域分为广告、推荐和语言或者语文。广告领域,可以理解为一些基本都是NLP处理,例如文本分类、文本聚类、命名实体识别等;对于推荐领域,所用到的NLP一般会包含在用户画像、内容画像的建立,以及需要使用传统的机器学习算法做一些聚类的模型;对于语言领域,常见的就是做机器翻译、文本摘要、文本归纳等相关的内容。所以,在踏入NLP这个领域之前,一定要想好,从哪个口进行突破。
当确定好一个领域之后,接下来要做的就是探索。根据自己领域的选择,利用搜索引擎去探索该领域所需要的知识库,例如,在做推荐领域时,我们需要了解文本分类、协同过滤、聚类、关键词提取等相关技术,我们需要把这些细小的技术点逐一的层层击破,如果有时间的情况下,最好是针对于每一个技术点能够写一个demo,然后再将这些小的技术点组合起来,形成一个相对比较完整的项目。
最后,给自己定一个可以实现的大的项目任务,然后将任务逐步拆解,并完成它。
有一定Python基础,但是没有NLP基础
针对这类同学,首先要做的就是确保自己的Python是过关的,确保的方式很简单,那就是做大量的Python任务类的练习,来检测自己的Python能力,再查缺补漏;接着就是要对前面所提到的机器学习和深度学习基础有着比较深刻的认识;
当完成了这两步之后,我们就可以像前面一样,选择一个领域,然后去了解这个领域的技术栈,并对每一个技术栈逐一突破。另外,如果想在NLP上有更加深入的了解,和更加大的作为,那么对于看大量的论文是必不可少的,对于一个初学者而言,我们可以做的就是求看大量的paper,然后看懂网上的复现代码。
基础很扎实,也在从事NLP工作,想深入NLP
对于这类同学来说,去看大量的paper是前提,不仅要看懂网上的复现,还要在此基础上对模型进行改进,例如修改模型,增加层数,这里需要注意的是层与层之间的出参和入参,这也是很多初学者所欠缺的。
当我们能够看懂网上的论文复现之后,接下来就是提高自己,这里的提高一般可以找几篇论文,然后自己进行论文的代码复现。
最后,给自己定一个大任务,然后去完成它,并不断的积累,不断的练习,如此反复。
上面我们是从资历的角度来阐述学习NLP的方法,那么我们同时也可以从规划的角度简单来聊一聊。
对于NLP的学习无非是2种人。一种就是以研究为主,想深入;另外一种就是以找工作为目的。
以研究为主,想深入
对于以研究为主想深入的同学,一般都是研究生在读或在实验室工作为主。对于这类同学,一个核心词就是“paper”。多看论文、多看论文复现,并对每一个算法的底层原理吃透,如果有时间,最好把底层的代码熟悉一遍,其目的在于当需要对整体算法进行优化的时候,能够有清晰的思路。
以工作为主
对于以工作为主的同学,就需要以解决实际问题出发。首先了解自身的需求,然后找到需要的模型,并去找这个模型所对应的论文以及GitHub上的复现代码。
看懂这些代码,然后使用其他框架来实现它,比如网上是pytorch的,我们就可以使用TensorFlow来实现一遍。
通过这样反复的练习,慢慢积累,就可以使自己的NLP工作得心应手,不断提高。
以上是我个人对于学习NLP的总结,不同的人有不同的学习方法,谨以此献给刚入行NLP却不知从哪里下手的同学。
END
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有