前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【分享】自身经历谈一谈自然语言处理领域如何学习?

【分享】自身经历谈一谈自然语言处理领域如何学习?

作者头像
zenRRan
发布2019-11-12 21:24:55
5060
发布2019-11-12 21:24:55
举报
文章被收录于专栏:深度学习自然语言处理

作者:老宋的茶书会

来自:AINLP

zenRRan有改动

知乎专栏:NLP与深度学习

研究方向:自然语言处理

https://zhuanlan.zhihu.com/p/90931060

前言

前段时间有朋友询问说NLP领域如何学习,然而一直忙于毕业论文中实在没有时间,两年半真的实在太难受了。昨天刚交了盲审,祈祷顺利毕业呀。

今天刚好有时间讲讲我自己的学习之路,然后谈谈我对自然语言处理领域学习的一些建议。

老宋:从迷茫到入坑

老宋本科在帝都某211,专业自动化,学的东西乱七八糟,因此翘课3年,挂科两门,侥幸毕业,实在不感兴趣。在本科期间,做过一年的嵌入式Linux,然后在大三之后转做Android,并花费半年之久考研(别问为啥考北科,问就是求稳)。说这些表达的意思是,老宋的基础还行,遗憾的是没有大牛带,一个人摸索的确难受,方向的不确定性也让人很迷茫。不过这也养成了我自学,自查,自己搞的习惯,这大学也没白读不是。

我个人觉得我在大学一个重要的收获就是,学会思考,坏处是经常会睡不着觉,乱七八糟一通思考。后来慢慢思考自己的路要怎么走,其实是一个不断探索的过程,中间自己不仅仅编程吧,其他经济学等方面也都有涉及,对吹牛逼大有益处。

到了研究生阶段,第一学期,懵懵懂懂学习机器学习基础知识,然后到第二学期,开始正式进入自然语言处理领域,开始打算做阅读理解方向的内容(事实证明,没有好老师指导,研究生想在阅读理解领域干点事情,基本不可能)。就这样,看论文,写代码,到了研二第二学期,开始找实习。刚开始,觉得刷题对算法岗不咋重要,然而,事实啪啪啪打我的脸,春招的笔试基本都挂,难受的一批。然后就是自己做的方向太窄了,阅读理解有没有商用,懂的面试官贼少,而你又没有顶会之类的硬货,因此,整个春招找实习算是很失败的。

总结下来就是两大原因:

  • 忽略了刷题的重要性,搞得笔试根本过不去,bat连面试资格都没有,难受啊
  • 方向太窄,阅读理解没面试官懂,且你没有硬货。

经过反思之后,我依旧没有把刷题放在首要任务上,这是秋招的一大败笔。

其实还有一点就是,看论文到底有没有用,我个人精读论文不下100,泛读的也不下200篇,可是面试官问不出来呀。很多同学都是看看BERT,Transformer,看看博客,刷刷面经就面过了(刷题需足够多),这也让我本身怀疑看论文的必要性,因为真的没有几个面试官能问出什么高水平的问题,基本就面经上常见的问题。

而今年算法岗还有一个有趣的现象:有的大厂面试官的水平不如应聘者,真实千奇百怪啊。

如何学习自然语言处理领域?

其实,我个人依旧认为学习自然语言处理领域的最好方式就是看论文,虽然今年不少人都是刷面经过的算法岗(有的在5月份连BERT都不知道),但从学习角度来说还是以论文为主,毕竟目前自然语言处理领域处于高速发展中。

如果我是面试官,我就从:你能不能谈谈最近预训练语言模型的发展 这一问题来评估应聘者的水平,要想说清楚这个发展历程,没有个精读10篇预训练语言模型论文是肯定不行的。而这一问题,也只有百度面试官问过,其他很多厂都是最多问问BERT,还有的大厂问各种数学计算公式,在我看来挺无聊的,背个公式这tm能体现出应聘者水平吗。这也从侧面验证百度技术还是厉害的。

因此,我这里并不介绍秋招准备的东西,而是日常学习中,自然语言处理你应该学习哪些东西,当然这是我按照我个人的学习推荐的,如果你要急于准备秋招,建议去牛客刷面经,对面试帮助极大。

如何入门自然语言处理?

首先,你要对自然语言处理领域有大致的了解,自然语言处理领域有哪些子任务,每个子任务都有哪些特点等。我个人认为这是你进入自然语言处理领域要做的第一件事情。

幸运的是,清华2018出了一篇报告讲述自然语言处理领域的现状,名为:《2018自然语言处理研究报告》。可以在文章结尾的百度云自己下载。

在进入自然语言领域之前,依旧需要你对机器学习以及深度学习有一定的基础,因此我个人推荐先学习这两大内容。机器学习对于自然语言处理来说相对并不重要,因此,可以简单过一遍即可。

我这里分别推荐书籍以及视频资料:

  • 机器学习书籍:《PRML》
  • 深度学习书籍:《Deep Learning》,看前几章就行
  • 机器学习视频:白板推导系列
  • 深度学习视频: 基础 - 吴恩达课程,深入 - 李宏毅老师视频

在这之后,你就应该学习自然语言处理领域的内容了,学习自然语言处理最好的方式是以点带面,从一个实际的上层应用出发,比如推荐,搜索,对话等。分析该上层应用中涉及到哪些自然语言处理方面的内容,然后针对性的学习。

就我个人来说,我依旧推荐文本分类作为入门的第一选择,因为文本分类在业界中应用的确最为广泛。我个人也有两个相关的仓库和文章:

  • 文章模型:几个可作为Baseline的文本分类模型
  • 基于词向量的模型:TextClassification-Pytorch
  • 基于BERT的模型:Bert-TextClassification

由于NLP还在快速发展中,因此还没有那部书能够把内容以往打尽,因为书的周期太长,等出来后,技术都过时了。因此,对于自然语言处理领域来说,最重要的依旧是看论文,我之前写过一篇关于论文大礼包的,你把其中重要的文章看一遍基本就入门了,大概20多篇吧。

  • 听说你急缺论文大礼包?(更新ing)

如何深入自然语言处理领域?

对于自然语言处理领域来说,有很多子任务,大多数人都是专注于有限几个领域。尤其是预训练语言模型诞生后,区别更不大了。在前面已经提到过了,那么你首先应该选择一个你感兴趣的上游任务,上游任务往往都比较复杂,融合了很多子任务。 举例来说:对于任务型对话来说,就涉及到文本分类,序列标注,文本匹配等任务。因此,你入门之后,还需要对应的学习多个子任务的内容。这里我推荐两个内容:

  • NLP-progress - 讲述nlp相关任务最新进展
  • 中文相关进展 -- 中文nlp任务的数据集,论文,进展等
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 老宋:从迷茫到入坑
  • 如何学习自然语言处理领域?
  • 如何入门自然语言处理?
  • 如何深入自然语言处理领域?
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档