Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
社区首页 >专栏 >NLP应该怎么学(纯总结,无广告)

NLP应该怎么学(纯总结,无广告)

作者头像
黄鸿波
发布于 2020-04-14 09:21:47
发布于 2020-04-14 09:21:47
1.1K0
举报
文章被收录于专栏:AI的那些事儿AI的那些事儿

最近几个月,有很多同学都私信我,问我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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AI的那些事儿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
开发转算法,我们应该如何准备(肺腑之言,无广告)
随着近几年AI和算法岗位越来越热门,很多开发者都选择从开发岗向算法岗转型,但是由于大家对算法岗并不是很熟悉,并且自身对算法岗所需要的技术技能也不是很了解,因此,在转型过程中困难重重,我早在6年前也是一名Android开发工程师,那么今天我就来结合自身经验以及周边同学的经验,来和大家聊聊如何从开发岗向算法岗转型。
黄鸿波
2020/06/05
4K4
保姆级NLP学习路线来啦!
这个保姆级不是形容这份指南有多详细,而是形容这个指南会伴随你们一起成长哟(其实就是太多了写不完)。之后的更新都会定期发文并汇总在Github上,欢迎催更:
Datawhale
2021/01/07
1.7K0
保姆级NLP学习路线来啦!
怎样成为一名优秀的算法工程师
同时在本微信公众号中,回复“SIGAI”+日期,如“SIGAI0515”,即可获取本期文章的全文下载地址(仅供个人学习使用,未经允许,不得用于商业目的)。
SIGAI学习与实践平台
2018/08/07
5930
怎样成为一名优秀的算法工程师
2021年,还能入坑NLP吗?
最近有粉丝私信我,NLP很难学,这条路能坚持走吗?有相同困惑的朋友可以一起探讨一下:
石晓文
2021/11/04
9470
2021年,还能入坑NLP吗?
NLP 算法工程师相关的面试题
【导读】本项目记录了面试NLP算法工程师常会遇到的问题,作者songyingxin。
代码医生工作室
2019/10/31
2.6K0
怎样成为一名优秀的算法工程师
原创声明:本文为 SIGAI 原创文章,仅供个人学习使用,未经允许,不得转载,不能用于商业目的。
SIGAI学习与实践平台
2018/07/12
7210
数学都还给老师了,还能搞算法吗?
江湖上有很多传言,比如想要搞算法,一定要先搞数学。数学非常重要,数学都不会,怎么搞算法。甚至还有小伙伴问我说,我想搞算法,是直接读计算机呢,还是先读个数学系再转计算机……还有很多小伙伴想要从事算法,但是对于数学充满了畏惧。
TechFlow-承志
2022/08/26
5450
数学都还给老师了,还能搞算法吗?
NLP学习路线总结
自然语言处理(Natural Language Processing,NLP)是计算机科学领域与人工智能领域中的一个重要方向。它研究人与计算机之间用自然语言进行有效通信的理论和方法。融语言学、计算机科学、数学等于一体的科学。旨在从文本数据中提取信息。目的是让计算机处理或“理解”自然语言,以执行自动翻译、文本分类和情感分析等。自然语言处理是人工智能中最为困难的问题之一。
全栈程序员站长
2022/11/10
1.3K0
NLP学习路线总结
机器学习知识点总结
主要是为了列个机器学习相关的提纲,方便对已经学过的知识进行整理,相同的知识点,每次或者每个阶段都会有不同的想法,而我需要做的就是把自己的想法写下来,在这里进行汇总,方便以后复习等等。
zeekling
2022/06/17
2900
想入门机器学习?机器之心为你准备了一份中文资源合集
机器之心整理 参与:机器之心编辑部 机器学习日益广为人知,越来越多的计算机科学家和工程师投身其中。不幸的是,理论、算法、应用、论文、书籍、视频等信息如此之多,很容易让初学者迷失其中,不清楚如何才能提升技能。本文作者依据自身经验给出了一套快速上手的可行方法及学习资源的分类汇总,机器之心在其基础上做了增益,希望对读者有所帮助。 先决条件 机器学习的基础是数学。数学并非是一个可选可不选的理论方法,而是不可或缺的支柱。如果你是一名计算机工程师,每天使用 UML、ORM、设计模式及其他软件工程工具/技术,那么请闭
机器之心
2018/05/09
1.1K0
机器学习你不可不懂的线性代数和矩阵微分
陈灿
2017/07/11
2.7K0
机器学习从入门到出家
张红林
2017/04/19
8K2
建立数据场的七大技能
摘要:成为数据极客,建立自己的数据场需要哪些技能呢?遇到普通的数据,通过SQL做分析。如果数据量比较大,可以使用Hadoop等大数据框架处理。在深入挖掘上,可用Python或者R语言进行编程。 1 数
灯塔大数据
2018/04/09
6860
万字入门推荐系统
最近一周我、强子、Y哥三人,根据自身如何入门推荐系统,再结合三人分别在腾讯做广告推荐、字节做视频推荐、百度做信息流推荐的经历,整理出了这份万字入门推荐系统。内容十分详细,涵盖了推荐系统基础、进阶、实战的全部知识点,并且每一块都给出了我们自己看过且觉得高质量的参考资料,所以不管你是科班还是非科班,按照这条路线走下去,找到推荐系统相关工作是完全没问题的。因为内容过于全面详细,即便你不从事推荐系统方向,只要是从事程序员,看完这篇文章也能有所收获。不过要先强调一下,如果是没有基础且时间充足的同学,可以按部就班的学,如果有一定基础或时间紧张,那就直接看核心知识。其中『 机器学习、深度学习、推荐算法理论知识、推荐系统实战项目 』这四块是核心知识,像数学、计算机基础可以等到你需要的时候再反过头来学习。在核心知识中也有次重点,要学会有的放矢,哪些知识是次重点,我都会在后面一一说明。
用户9656380
2022/04/14
5330
万字入门推荐系统
机器学习与深度学习中的数学知识点汇总
在机器学习与深度学习中需要大量使用数学知识,这是给很多初学带来困难的主要原因之一。此前SIGAI的公众号已经写过“学好机器学习需要哪些数学知识”的文章,由于时间仓促,还不够完整。今天重新整理了机器学习与深度学习中的主要知识点,做到精准覆盖,内容最小化,以减轻学习的负担同时又保证学习的效果。这些知识点是笔者长期摸索总结出来的,相信弄懂了这些数学知识,数学将不再成为你学好机器学习和深度学习的障碍。
SIGAI学习与实践平台
2019/09/11
1.3K0
机器学习与深度学习中的数学知识点汇总
机器学习,数据挖掘在研究生阶段大概要学些什么?
作者:豆豆叶 中国科学技术大学数学系 机器学习,数据挖掘在研究生阶段大概要学些什么?能给一个梗概或者方向么? 这是一个很难回答的问题,每个人的基础不同起点也不同,需要学的东西也完全不一样。先说我的观点:不要想一下子吃成一个胖子;很多时候,想吃的越多反而什么也消化不了。 让我们先看一道面试题(非原创):一条路上有N棵树,每棵树都有两个指标,一个是位置a_i(是整数),一个是体积w_i(是整数),现在要把这些树砍下来,运到K个仓库,我该如何选择这些仓库的位置(也是整数),使得搬运的成本尽量小呢?
机器学习AI算法工程
2018/03/13
1.6K0
《自然语言处理理论与实战》
自然语言处理是什么?谁需要学习自然语言处理?自然语言处理在哪些地方应用?相关问题一直困扰着不少初学者。针对这一情况,作者结合教学经验和工程应用编写此书。《自然语言处理理论与实战》讲述自然语言处理相关学科知识和理论基础,并介绍使用这些知识的应用和工具,以及如何在实际环境中使用它们。由于自然语言处理的特殊性,其是一门多学科交叉的学科,初学者难以把握知识的广度和宽度,对侧重点不能全面掌握。《自然语言处理理论与实战》针对以上情况,经过科学调研分析,选择以理论结合实例的方式将内容呈现出来。其中涉及开发工具、Python语言、线性代数、概率论、统计学、语言学等工程上常用的知识介绍,然后介绍自然语言处理的核心理论和案例解析,最后通过几个综合性的例子完成自然语言处理的学习和深入。《自然语言处理理论与实战》旨在帮助读者快速、高效地学习自然语言处理和人工智能技术。
刀刀老高
2018/09/14
1.6K0
《自然语言处理理论与实战》
不知道如何开始机器学习?这有份初学者指南!
这份指南是为了那些对机器学习感兴趣,但不知如何开始的朋友们准备的。我想大多厌倦在网上搜索大量资料的人都会有挫败感,也放弃了有人能指引他们如何入门的希望。
AI研习社
2018/07/26
4010
不知道如何开始机器学习?这有份初学者指南!
程序员是否需要数学好吗?解析数学在编程中的作用
在当今数字时代,计算机科学和软件开发成为了高度需求的领域之一。然而,有一个长期存在的问题是,程序员是否真的需要数学好呢?这个问题一直以来都备受争议,因为程序员的工作范围涵盖了广泛的领域,从简单的网站开发到复杂的人工智能系统。
很酷的站长
2023/12/20
2680
程序员是否需要数学好吗?解析数学在编程中的作用
软件开发|机器学习实践指南
你可能在各种应用中听说过机器学习machinelearning(ML),比如垃圾邮件过滤、光学字符识别(OCR)和计算机视觉。
用户8710643
2021/07/12
3140
相关推荐
开发转算法,我们应该如何准备(肺腑之言,无广告)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 腾讯技术创作特训营