自然语言处理一些读书笔记和自己的思考。xxxxxxxx1x2xxxxxxx

第一阶段的时候,学术界对人工智能和自然语言理解的普遍认识是:要让机器完成翻译或者语音识别等等,必须先让计算机理解自然语言,就像人类一样去理解这些语言,这显然是做不到的。即便在可预见的将来,这也必定是一件不太现实的事情。

第二阶段,比如机器在翻译的过程中,并没有理解这句话的意思,它只是做了一种统计上的归纳而已。机器依旧是机器。

基于规则的分析方法,需要将现有的句法系统按照句子成分划分成一个一个单位,而这会随着句子的复杂多样化句子的划分复杂度几何级上升,并且没有上下文的帮助句子词义的多样性同样限制了规则分析方法的发展。比如Thepenisinthebox.和Theboxisinthepen.按照规则来分析该句子根本不可能获得语义,必须依靠常识来得到该句子的真正含义,但是基于统计的方法可以依靠上下文对该语义做一个合理的预估。基于规则的方法完全从该单独的句子着手,根本不管上下文。但是这样也还是没有让基于统计的方法快速发展起来,主要原因在于基于统计的方法需要大量的训练数据,这在当时来说是达不到的。

二.统计语言模型:

一个句子S=(w1,w2,w3…wn)由n个词组成,我们要弄清该句子是否是一个合乎实际的句子,可以计算该句子在现实情况下的概率,最最简单的想法是把人类所有句子统计一遍,然后再计算这个句子的概率,但是这显然是行不通的。一个可行的方法是把这个句子分成n个词(对于中文来说,这就是中文分词研究的东西),然后再计算这n个词按照该顺序组成这个句子的概率大小。可以表示如下:

这个概率计算的复杂度会随着n的增大指数上升。因此引入齐次马尔科夫性假设,即假设一个词的出现只与其前面一个词的出现有关,而与更前面的词无关,这样概率计算可以简化为如下:

这样的模型称为二元模型,用更一般的表示方法为:

但是二元模型显然太过于简单草率,所以有了高阶模型的出现,n阶模型表示一个词的出现与其前面的n-1个词有关。表示为:

一般由于计算复杂度的问题,大多数情况下用3阶模型,谷歌的用到了4阶模型。

接下来的问题是,由于用来训练模型的语料库(corpus)太少而出现的零概率情况如何处理?

这里有一个古德-图灵公式,基本思路是当词语对出现次数大于某一阈值时,利用条件概率计算出来的频率根据大数定理就当做概率(因为只有大于某一阈值时我们才有充分理由相信大数定理的条件被满足),当出现频数小于该阈值但又大于零的频率,则相应的下调该频率值,因为这个时候大数定律成立的条件是没有被满足的,并且出现次数越少,下调频率越多,最后把这个下调的频率当做所求的概率,最后对于零出现的情况,则将这些下调的总和平均分配给零出现的次数,以保证概率总和为1。

三.中文分词问题:

汉语和英语有分割每个词的空格不一样,汉语中所有的词都没有明显分界,所以必须解决中文分词问题,最简单的方法是查字典,基本思想是首先有一个中文词语的字典库,将一个句子从左扫描到末尾,遇到字典里有的词之后就保存,规则是尽量找最长的词,比如中国航天城,中是一个单字词,先保存,继续往下扫描,遇到国字,中和国可以组成一个更长的词,因此最后保存中国这个词,后面的航天城类似。查字典的处理方法简单,但不够准确。因为很多情况下并不是最长词的分词规则就是最适合的。

利用统计语言模型来处理中文分词的第一人是郭进博士,基本思想是:假设一个句子有很多种分词方法,则分别计算每种分词方法对应的该句子概率。即:

也就是说,利用每种分词方法都可以计算该句子的概率。然后取最大概率对应的分词方法。其本质上是一种极大似然估计。

四.关于郭进博士分词方法的一些思考:(求指正)

在这里,极大似然估计和极大后验概率都是如下的应用场景:在给定观测数据X的情况下,我们要求解产生该观测数据X背后的参数,并且我们求得的参数并不是非此即彼的,也就是有一个概率分布来表征每一个可能的参数。当然,一般情况下我们都取概率最大的那个参数,即.

在频率学派的世界里,参数是常量只是未知。而在贝叶斯学派的世界里,参数则不是常量。双方曾经对这两种观点进行了激烈的争论,这是后话不表。

回到我们这里的问题,给定一个句子,我们要求解其分词组合,实际上给定的这个句子就是我们的观测值,而分词组合便是待求解的参数,而上文说到的清华大学博士郭进所用到的方法便是:先求得每个分词组合下对应的句子概率,把最大概率对应的分词组合作为最终答案。很明显存在如下这个公式:

所以我把这个归为本质上的极大似然估计。

中文分词并不是只能应用在中文领域,而是根据特定场合同样可以应用在字母语言的领域,比如英语词组的分割,手写句子的识别(因为手写英文句子的空格不那么明显)等等。

中文分词已经发展到相当高的阶段,目前只是做一些完善和添加新词的工作,但是也存在一些工程实现方面的取舍问题,主要有两点:

1.分词的一致性,对于同样一个句子,每个人的分词方法不一样,不能说哪种分词方法更优,只能说在具体应用场景里存在一种最优的分词方法;

2.分词的颗粒度问题,和一致性问题一样,不同的应用场景适合用不同的颗粒度,分词器在设计的时候一般会全面兼顾颗粒度小和颗粒度大的情况,在具体问题的时候再进行相应的取舍。

大家回答的都挺不错了,只好来强答。

一、独立实现一个小型的自然语言处理项目。

这一阶段主要是学习快速上手一个项目,从而对自然语言处理的项目有比较感性的认识——大体了解自然语言处理算法的原理、实现流程等。

当我们对自然语言处理项目有了一定的认识之后,接下来就要深入进去。任何自然语言处理应用都包含算法和所要解决的问题两方面,要想深入进去就需要从这两方面进行着手。

二、对问题进行深入认识

除了从文献中获取对问题的认识外,另一种对问题进行深入认识的直观方法就是对算法得出的结果进行badcase分析,总结提炼出一些共性的问题。对badcase进行分析还有一个好处,可以帮助我们了解哪些问题是主要问题,哪些问题是次要问题,从而可以帮助我们建立问题优先级。如果有具体任务的真实数据,一定要在真实数据上进行测试。这是因为,即使是相同的算法,在不同的数据集上,所得到的结果也可能相差很大。

三、对算法进行深入理解

除了具体的问题分析,对算法的理解是学习人工智能必须要过的关。经过这么多年的发展,机器学习、模式识别的算法已经多如牛毛。幸运的是,这方面已经有不少好的书籍可供参考。这里推荐华为李航的蓝宝书《统计学习方法》和周志华的西瓜书《机器学习》,这两本都是国内顶级的机器学习专家撰写的书籍,思路清晰,行文流畅,样例丰富。

如果觉得教科书稍感乏味,那我推荐吴军的《数学之美》,这是一本入门级的科普读物,作者以生动有趣的方式,深入浅出的讲解了很多人工智能领域的算法,相信你一定会有兴趣。

四、深入到领域前沿

国际上的文本领域会议:

COLING:没找到2017年的

国内会议:

以上就是对于没有自然语言处理项目经验的人来说,如何学习自然语言处理的一些经验,希望对大家能有所帮助。

视频篇:

好像就是这些内容了。如果有,日后再补。

1.幼年体——自然语言处理好屌,我什么都不会但是好想提高

建议。。。去看公开课~去做Kaggle的那个情感分析题。

2.成长期——觉得简单模型太Naive,高大上的才是最好的

这个阶段需要自己动手实现一些高级算法,或者说常用算法,比如LDA,比如SVM,比如逻辑斯蒂回归。并且拥抱Kaggle,知道trick在这个领域的重要性。

3.成熟期——高大上的都不work,通过特征工程加规则才work

大部分人应该都在这个级别吧,包括我自己,我总是想进化,但积累还是不够。觉得高大上的模型都是一些人为了paper写的,真正的土方法才是重剑无锋,大巧不工。在这个阶段,应该就是不断读论文,不断看各种模型变种吧,什么句子相似度计算word2veccosine已经不再适合你了。

4.完全体——在公开数据集上,把某个高大上的模型做work了~

这类应该只有少数博士可以做到吧,我已经不知道到了这个水平再怎么提高了~是不是只能说不忘初心,方得始终。

5.究极体——参见MichealJordanAndrewNg.

昨天实验室一位刚进组的同学发邮件来问我如何查找学术论文,这让我想起自己刚读研究生时茫然四顾的情形:看着学长们高谈阔论领域动态,却不知如何入门。经过研究生几年的耳濡目染,现在终于能自信地知道去哪儿了解最新科研动态了。我想这可能是初学者们共通的困惑,与其只告诉一个人知道,不如将这些FolkKnowledge写下来,来减少更多人的麻烦吧。当然,这个总结不过是一家之谈,只盼有人能从中获得一点点益处,受个人认知所限,难免挂一漏万,还望大家海涵指正。

1.国际学术组织、学术会议与学术论文

2.国内学术组织、学术会议与学术论文

3.如何快速了解某个领域研究进展

最后简单说一下快速了解某领域研究进展的经验。你会发现,搜索引擎是查阅文献的重要工具,尤其是谷歌提供的GoogleScholar,由于其庞大的索引量,将是我们披荆斩棘的利器。

针对这个问题,我们邀请了微软亚洲研究院首席研究员周明博士为大家解答。

周明博士于2016年12月当选为全球计算语言学和自然语言处理研究领域最具影响力的学术组织——计算语言学协会(ACL,AssociationforComputationalLinguistics)的新一届候任主席。此外,他还是中国计算机学会中文信息技术专委会主任、中国中文信息学会常务理事、哈工大、天津大学、南开大学、山东大学等多所学校博士导师。他1985年毕业于重庆大学,1991年获哈工大博士学位。1991-1993年清华大学博士后,随后留校任副教授。1996-1999访问日本高电社公司主持中日机器翻译研究。他是中国第一个中英翻译系统、日本最有名的中日机器翻译产品J-北京的发明人。1999年加入微软研究院并随后负责自然语言研究组,主持研制了微软输入法、对联、英库词典、中英翻译等著名系统。近年来与微软产品组合作开发了小冰(中国)、Rinna(日本)等聊天机器人系统。他发表了100余篇重要会议和期刊论文。拥有国际发明专利40余项。

————这里是正式回答的分割线————

自然语言处理(简称NLP),是研究计算机处理人类语言的一门技术,包括:

1.句法语义分析:对于给定的句子,进行分词、词性标记、命名实体识别和链接、句法分析、语义角色识别和多义词消歧。

3.文本挖掘(或者文本数据挖掘):包括文本聚类、分类、信息抽取、摘要、情感分析以及对挖掘的信息和知识的可视化、交互式的表达界面。目前主流的技术都是基于统计机器学习的。

4.机器翻译:把输入的源语言文本通过自动翻译获得另外一种语言的文本。根据输入媒介不同,可以细分为文本翻译、语音翻译、手语翻译、图形翻译等。机器翻译从最早的基于规则的方法到二十年前的基于统计的方法,再到今天的基于神经网络(编码-解码)的方法,逐渐形成了一套比较严谨的方法体系。

5.信息检索:对大规模的文档进行索引。可简单对文档中的词汇,赋之以不同的权重来建立索引,也可利用1,2,3的技术来建立更加深层的索引。在查询的时候,对输入的查询表达式比如一个检索词或者一个句子进行分析,然后在索引里面查找匹配的候选文档,再根据一个排序机制把候选文档排序,最后输出排序得分最高的文档。

6.问答系统:对一个自然语言表达的问题,由问答系统给出一个精准的答案。需要对自然语言查询语句进行某种程度的语义分析,包括实体链接、关系识别,形成逻辑表达式,然后到知识库中查找可能的候选答案并通过一个排序机制找出最佳的答案。

建议1:如何在NLP领域快速学会第一个技能?

我的建议是:找到一个开源项目,比如机器翻译或者深度学习的项目。理解开源项目的任务,编译通过该项目发布的示范程序,得到与项目示范程序一致的结果。然后再深入理解开源项目示范程序的算法。自己编程实现一下这个示范程序的算法。再按照项目提供的标准测试集测试自己实现的程序。如果输出的结果与项目中出现的结果不一致,就要仔细查验自己的程序,反复修改,直到结果与示范程序基本一致。如果还是不行,就大胆给项目的作者写信请教。在此基础上,再看看自己能否进一步完善算法或者实现,取得比示范程序更好的结果。

建议2:如何选择第一个好题目?

工程型研究生,选题很多都是老师给定的。需要采取比较实用的方法,扎扎实实地动手实现。可能不需要多少理论创新,但是需要较强的实现能力和综合创新能力。而学术型研究生需要取得一流的研究成果,因此选题需要有一定的创新。我这里给出如下的几点建议。

建议3:如何写出第一篇论文?

————这里是回答结束的分割线————

感谢大家的阅读。

3.稍微进阶一点的PhilippKoehn《StatisticalMachineTranslation》如果你对机器翻译感兴趣,可以继续看这本这本书的中文版也是宗成庆老师翻译的,可以去找找

如果我还有看什么书,我应该会不定期更新一下这条回答吧,也当是给自己做个记录~

我参考了两本书作为学习的蓝图,并且主要章节(机器翻译和语音识别没看)都认真看了一两遍。(1)统计自然语言处理(第2版)宗成庆著(2)语音与语言处理(英文版第2版)DanielJurafsky,JamesH.Martin著

(4)统计学习方法李航著这本书蛮难啃的,我按需看了一半,其中CRF这本讲的比较全。

配合性的其他书籍主要有:(5)计算语言学(修订版)刘颖著比较偏语言学一点,数学理论比较少,相对简单一点,看一遍收益也有不少

(6)自然语言处理简明教程冯志伟著相对简单,稍微略显啰嗦,不过感觉HMM这本书讲的最易懂。

(7)自然语言处理的形式模型冯志伟著这本和(6)比,增加不少深度和难度,建议按需慢慢啃。我啃了几章,觉得蛮有用。

(8)自然语言处理基本理论和方法陈鄞编哈工大出的书,纯粹为配合超星视频而买。

(9)Java自然语言处理(影印版英文版)RichardMReese著学了总要实践吧,Java还是要比Python靠谱。

(10)本体方法及其应用甘健侯等著(11)本体与词汇库(英文影印版)典居仁(Chu-RenHuang)等编这两本书对信息抽取有一定帮助,不感兴趣的可以略过。

以上所有列出的图书我都有纸介质(能买则买,买不到就打印)

另外超星学术视频(网络上可以找到资源):(12)自然语言理解宗成庆(中科院)看了感觉是配套宗成庆书的初版

(13)自然语言处理关毅(哈工大)看起来还算蛮简单,和(8)几乎是配套的

以人类语言为研究对象的“自然语言处理”(NaturalLanguageProcessing:NLP)是人工智能最重要的研究方向之一。在自然语言处理领域,ACL是世界上影响力最大、也最具活力、最有权威的国际学术组织,成立至今已有57年历史,会员遍布世界60多个国家和地区,代表了自然语言处理领域的世界最高水平。

2011年开始,ACL开始以一年平均4-5个的速度评选会士,ACLFellow的头衔是对NLP领域有杰出贡献的人最高的认可。截至2016年ACL共评选出40个会士,其中4位是华人/华裔,分别是:

DekaiWu(2011ACLFellow),香港科技大学吴德凯教授,成就是“较早将中文分词方法用于英文词组的分割,并且将英文词组和中文词在机器翻译时对应起来”,已发表学术论文百余篇,论文引用量超6800次;

HweeTouNg(2012ACLFellow),新加坡国立大学黄伟道教授,自然语言处理和信息检索专家,精通于核心分辨率和语义处理以及语义语料库的开发,ACL2005程序委员会主席,已发表学术论文百余篇,被引用超8200次;

题主问的是国内的牛人,那就是林德康和王海峰两位教授啦~

听说两位教授所在公司目前都在招NLP方面的人才,有兴趣的大神可以投简历至hr@naturali.io和hr@baidu.com试一试,祝大家好运~祝

对于命名实体识别,我目前还没有看到有哪些工作用了部首特征。猜测有三个可能的原因:1.命名实体绝大多数都是名词,部首特征对于名词之间的细粒度区分作用较小;2.命名实体识别任务大都已经使用了词性特征,与部首特征有较大overlap;3.命名实体识别任务中词缀的影响更加显著,比如:xx国,xx银行,xx所。

python速度和方便程度都不比不上matlab。而且文献中有很多程序都是用matlab写的。另外matlab的矩阵计算优化得很好,计算速度远远超过了numpy。

如果要作为产品,那么用C++和Eigen库开发,然后并行化,是极好的。整体速度远远高于matlab和python,内存使用量也小(大数据情况下内存使用量也是要考虑的)。

我先在基本用matlab做原型,用C++开发产品。

python介于两者之间,我自己用下来的感觉是比较尴尬的。

随着2016年结束,剑桥大学高级研究员MarekRei对人工智能行业的11个主要会议和期刊进行了分析,它们包括ACL、EACL、NAACL、EMNLP、COLING、CL、TACL、CoNLL、Sem/StarSem、NIPS和ICML。本次分析对目前在机器学习与自然语言处理领域的各类组织与院校的科研情况进行了对比。分析显示,在论文数量上,卡耐基梅隆大学(CMU)高居第一位。

以下各图所用到的信息均来自网络,每份文件的机构组织信息都是由论文的pdf文件中获取的,并不保证完全准确。

首先是2016年最活跃的25个机构:

接下来,看看作者个人情况:

下面是2016年最高产的第一作者:

另外有42人发表了三篇第一作者论文,231人发布了两篇第一作者论文。

NIPS一直以来每年都有一场规模很大的会议,今年看起来更是不得了。另外,COLING今年的表现超过了预期,甚至超过了ACL。这是自2012年NAACL和COLING合并以来的第一次。

下面是每个组织机构的历年来的论文数量:

在2015年超过微软之后,CMU继续领跑。但是谷歌也大步跨越,几乎快追上来了。斯坦福的表现也很抢眼,后面跟着IBM和剑桥大学。

最后,让我们来看看个人作者:

在图上可以看到,ChrisDyer有一条非常明显的上升曲线。其他过去五年来一直保持增长的作者:PreslavNakov、AlessandroMoschitti、YoshuaBengio和AndersSgaard。

首先想到的不应该是MichaelCollins吗……

MichaelCollins(Columbia),JasonEisner(JHU),DavidYarowsky(JHU)三位师兄弟(David>Michael>Jason)均师承于Upenn的MitchellMarcus教授,也就是著名的PennTreebank的作者。这三位是NLP界公认的大神,研究领域各有侧重。collins/eisner对NLP结构学习领域贡献极大,yarowsky早年研究词义消歧,是著名的yarowskyalgorithm的作者,后来做了很多跨语言学习的开创性工作。

MichaelCollins的学生中著名的有TerryKoo(Google),PercyLiang(Stanford),LukeZettlemoyer(UW);JasonEisner的得意弟子当首推NoahSmith(CMU->UW);DavidYarowsky似乎没有什么特别杰出的学生。

StanfordNLP掌门ChrisManning,以《统计自然语言处理基础》一书以及StanfordNLP(toolkit)而闻名。DanJurafsky,著有《语音与语言处理》一书,具有深厚的语言学背景。稍微提一下Manning的学生RichardSocher,近几年声名鹊起,在dl4nlp领域风头一时无两,属年轻一代翘楚。

UCBerkeley的DanKlein,早些年在无指导学习领域建树颇多。PercyLiang也是他的学生。UIUC的DanRoth,ChengxiangZhai(偏IR);MIT的ReginaBarzilay;哦,当然还有Brown大学的EugeneCharniak大神(Charniakparser),Brown大学也可算是没落的贵族了,和UPenn有点儿相似。

欧洲方面,JoakimNivre(UppsalaUniversity),代表工作是基于转移的依存句法分析。PhilippKoehn,著名机器翻译开源系统Moses作者,14年加入JHU。

非常喜欢MichaelCollins,认为他写的paper看得最舒服最爽,犹如沐浴于樱花之中。JasonEisner确实是厉害,不过看他paper实在太难看懂,写的语言非常抽象,我等屌丝实在难以深入理解。经过Collins大侠的一些paper才能对Eisner的paper妙语进行理解。

总之,就是超级喜欢MichaelCollins.期待能见到他或者follow他工作。

名单里有35个会士,前面答案里提到的MichaelCollins、ChristopherManning也在名单之列。看名字其中有3个是华人/华裔(其中一个是香港人)。

国际计算语言学学会仅有的4位华人ACLFellow之一,林德康教授对自然语言解析和词汇语义做出重要贡献。

林德康(DekangLin):国际计算语言学学会会士(ACLFellow)。前Google研究院高级管理科学家(seniorstaffresearchscientist),在加入Google之前担任加拿大阿尔伯塔大学计算机教授。他在自然语言处理及理解领域总共发表过90余篇论文,其研究总计被引用超过14000次。1985年毕业于清华大学计算机科学与技术专业,后赴英国求学,又转入加拿大阿尔伯塔大学读取计算机博士。先后任职阿尔伯塔大学副教授、正教授,任教期间主要从事自然语言理解研究.研究成果包括一款基于最简原则的英文语法分析器Minipar和一种用非监督学习同义词组的方法。后在美国Google研究院担任高级管理科学家,是Google搜索问答系统的创始人和技术负责人,领导了一个由科学家及工程师组成的团队,将Google搜索问答系统从一个基础研究项目逐步发展推广成为一个每天回答两千万问题的产品。

林德康教授还多次担任计算语言最高学术机构国际计算语言学学会ACL(AssociationforComputationalLinguistics)的领导职务,包括:ACL2002程序委员会联合主席、ACL2011大会主席、ACL2007北美分会执行委员等。2016年初回国,创办一家研发手机智能助手的公司——奇点机智,2017年4月发布的乐视AI手机宣布搭载奇点机智研发的语音助手——“小不点”。

听说其公司目前正在招聘NLP方面的人才,有意的大神可以投简历至hr@naturali.io,不过面试题有一定难度,不惧挑战的牛人可以尝试一下,反正我有个南大的同学没有通过(老铁,真心不是黑你TT),但还是祝各位好运~

都是非结构化数据,但由于图像是数字信号,处理和特征提取的手段更加丰富和可靠,文本数据提取特征难度较大,比较主流的就是词频矩阵和word2vec,而且由于语言种类很多,并且文本数据普遍质量不好,数据清洗和预处理的工作比较多。

个人以为,NLP现在对于浅层次的特征提取,分类等问题已经比较成熟了,而深层次的语义理解是现在大家研究的热点,也是和深度学习结合密切的方面。比如这两年以来Neuralmachinetranslation在机器翻译上相对于以前Phrase-basedML所取得的长足进步。并且现在工业界对于NLP的期待很大,在chatbot,翻译,语义分析,summarization,信息提取和本文分类都有很多尝试。

图像这方面,是最先开始和深度学习合作的领域,现在已有不错的工业化的例子,比如在医疗领域的协助诊断,安防的人脸识别,但都是浅层(并不是指方法简单)的图像处理技术,感觉对于图像深层次含义的理解和挖掘还需要很多努力,估计这方面未来也需要借助自然语言的研究成果。

1.商业应用来讲,当前nlp更成熟,cv处在探索阶段

nlp的商业应用上,国内的像百度语音、科大讯飞都做得很成熟了。目前机器视觉主要应用定位、识别、检测和测量,虽说四大块都取得了进展,但受到应用场景、算法的限制,稳定性较差,商业应用并未成熟。所以从就业来说,短期的几年内cv应该更火一点,现在来看也是这样的。

2.nlu是nlp未来的突破方向

nlp经过十多年的高速发展,精度已经相当高,但是达到99%以后,再提升就显得非常困难。从各大巨头发布的介绍来看,各家事实上是在追求自然语言理解(NaturalLanguageUnderstanding,NLU)的突破,但是在短期内还未见曙光。因为这方面的突破将会与脑神经科学、认知科学的发展联系密切,所以可能更适合搞研究(比较牛逼的突破性研究)。

3.个人学习来讲,打好数理和编程基础是关键

恰好两块都有涉猎,CV多一些,NLP和以前的项目关系更大,有过研究但不够深入。从宏观的讲,CV自然是会更有“前景”一些,从应用面的大小就能看出来,当然这也是一个不负责任的粗略的判断。虽然CV已经有很多年的积累,有了很多成熟的项目和技术,但是个人感觉它还有非常大的空间还没有被发掘出来,至于NLP,与其将其限制在语言的识别,不如退后一点来看audioprogcessing(包括语言和其他声音),audioprocessing已经在非常多的领域,未来还会在更多的领域得到应用。而且客观地说,目前看来audioprocessing是一个被低估的方向。因为我们太过于依赖视觉来判断,audio中所包含的信息,值得我们提取的信息还有非常多,但对于我们而言很多都是隐性的,就光是这一点,audioprocessing就已经有了很大的潜力。

这里需要强调一点:NLP不是字符串处理,也不是简单的词袋或文本分类。很多任务要做好就需要知道给你的句子或语段到底在讲什么。暂且先不考虑整个篇章级别的信息结构。给定任何一个句子,都可以有相对句长达到指数级数量的结果来解析它的语法结构,然而其中只有一个或极少个是语义上正确的。同时,同一个意思有无穷多种方式可以表达出来,绝大多数表达模式在大家手上的实验数据中可能出现都从来没出现过。Ambiguities(一个表达多种意义)和variations(一个意义多种表达)是NLP的根本难点,短期内不会有任何工作可以提出通用有效的解决方案。

CV啊,因为NLP现在都没有啃下来(模型、计算资源、数据,都没搞定),CV几个大任务,反正在公开的数据集上都快被啃得差不多了。

目前有的答案大多都是从技术的角度,已经分析的很好了。补充一点,任何技术的发展前景,归根到底是取决于它的应用尤其是商用前景。年轻人如果想选择自己毕生从事的领域,首当其冲要考虑的可能并不是一个东西在技术上还有多少现存问题没解决,而是一个东西在未来20、30甚至50年有没有可能代表一个庞大的市场应用。如果有,那么自然会有无数的技术问题被创造出来,需要无数的人才投入,那么自然而然的好的“发展前景”也就形成了。所谓选错行、站错队,大多数时候即是在这样的选择上出了问题。当然,timing也很重要,最典型的例子就是当年的生命科学....

先说学术圈

视觉大热过后现在已经进入了一个瓶颈期,现有数据上比较重要的问题都已经做的差不多了。视觉有三大问题:分类(classification)、检测(detection)、分割(segmentation)。

分类方面,imagenet已经MNIST化,折腾半天提升半个点实在没什么意思。检测方面有RCNN和SSD两个大方向,骨架已经搭好,剩下的就是填trick了。分割基本上是dilatedconvolution/upsampling的各种变种,也是过几个月加几个trick提高一个点的模式。

视频理论上是未来的方向,但是似乎视频需要的计算量比图片大得多,目前还没有什么突破,前途不明朗。可能还要等核弹厂挤两年牙膏。所以现在大家都在搞GAN啊pix2pix啊这种看起来炫酷但是无法量化评价的东西,虽然看起来百花齐放但是很难说前途明朗。

自然语言处理有些不温不火,虽然深度学习在翻译等方面带来一些进步但是并没有翻天覆地的感觉。由于自然语言先天的高度结构化、高度抽象、数据量(相对)小的特点,糙快猛的神经网络有些施展不开。如果说视觉已经过气了,那么自然语言就是还没火起来。未来应该是有前途的方向,但是这个未来有多远还不好说。

再说工业和应用方向

视觉在学术圈退火意味着技术已经比较成熟,正是工业界大干快上的好时机。但是工业应用想要成功,必须深耕一个垂直市场,比如自动驾驶,医疗图像,安全监控,其中医疗图像我认为是最有潜力的方向。想要做一个通用平台搞分类监测的公司基本都会遇到商业模式不清晰,竞争激烈,变现困难的问题,最好的下场也就是被大厂收购或者包养。

NLP由于特征较为高层,因此现有算法处理起来比较容易,发展比较成熟,像文档分类等任务,简单的特征可以达到非常高的准确率。但是在享受完基于统计的浅层语义果实以后,下一步的深层语义理解则困难重重。像机器翻译,对话系统等依赖深层语义理解的任务,目前的系统距离人类水平,尚有不小的差距。

CV由于特征较为底层,因此之前需要人工设计大量特征,效果也不尽如人意,所以发展没有NLP成熟。但是深度学习技术在特征提取上的具大优势,为CV的发展开启了一个崭新的时代。像图像分类等任务,已经达到接近甚至超过人类的水平,而之前想都不敢想的图像生成,视频生成等,也不断有激动人心的成果涌现。

NLP相当于已经达到90分,想提高到99分,困难很大,而CV之前也许只有60分,因此提高到90分非常容易,这也是目前CV迅速发展的原因。

不过由于深度学习技术的巨大潜力,NLP领域逐渐被深度学习席卷,大家希望能借助深度学习技术,向99分发起冲刺,因此NLP领域也非常有前景。

从发展上,两个领域目前都非常有前景,没有必要一定要分出个高下。从技术上,它们都逐渐被深度学习统治,像描述生成图片和图片生成描述这样的交叉任务也越来越多,有相当多互相借鉴的地方。从个人方向选择角度,我建议以个人兴趣作为第一出发点,无论选择哪个方向都挺好。而且有了深度学习技术的基础以后,想转另外一个方向,也不是很难。

先说我的观点:计算机视觉将越来越融合自然语言处理。

因为我自己是计算机视觉研究背景,所以下面主要讨论一下自然语言处理在计算机视觉中的几个应用。

所以,对图片数据的语义化和结构化,可以说是自然语言处理在计算机视觉里的一个首要应用。随后的各种基于机器学习的图片识别算法,都是为了预测图片的语义标定。Deeplearning本身也是representationlearning,说到底就是在图片高维空间里面建立更好的表征,使得这些表征对语义标定有更好的区分和映射。

NG的课在网易有字幕版,是在斯坦福上课的实拍,比cousera的更深,因为上课的是本科生(没记错的话),比较适合入门。不过数学的底子有要求,特别是线代。

这边我就仅仅针对该如何入门这个问题回答这个问题吧。

既然上面已经有很多人给出了很好的回答,这边我给出两个参考,希望对你有帮助。

知乎首答,写个短的。本人现在大三,计算机本科。目前在国立台湾大学做交换生。

第一个和第三个问题我不懂,坐等大牛回答。我只结合自己的情况说一下第二个问题。

NG的课程我以前看过一部分,讲的风格我觉得在干货之前都比较好懂(笑)。但是天朝的学子接受起来可能有困难。台湾大学的林轩田老师的machinelearning至少在本科生教育上做的很好。他们有个team经常去各种比赛上刷奖。我目前在修他的机器学习课程,觉得质量不错。现在coursera上也有同步课程。

个人觉得机器学习的很多方法都是从统计学上借鉴过来的,所以现在在补统计学的知识。同时作为一个理论性比较强的领域,线性代数和高等数学的知识起码是要具备的(至少人家用矩阵写个公式再做梯度下降你要看明白是在干嘛)。

其实我自己都怀疑读研的时候要不要换个方向(请行里行外的师兄来劝我两句,要不要去做别的啊!!QAQ)

最后说一句,机器学习之类我觉得是国内大学所谓计算机专业比较偏向CS而不是CE的部分了。虽然工程性很重要,但是和软件工程什么的比起来Science的成分总要更大一些。我是比较喜欢理学才来学这个东西。当然我的认识可能不对,我姑妄说之。

《统计学习方法》是指李航那本?不适合初学者,术语太多,干货满满,在introduction那一章连个例子都舍不得举,简直看不下去(我没说这本书不好,只是不适合初学者,等你学的差不多了以后再来看这本书会有长进的)。

AndrewNg的课指的是什么?网易公开课还是Coursera上的公开课?前者上不下去的话正常。后者比前者压缩掉了很多内容,把长视频切成了短视频,还有作业等互动环节,听不懂可以开字幕。要是这样你都听不下去,要么说明你该学英语了,要么说明你该学数学了:把机器学习的三驾马车——高等数学、线性代数、概率统计——好好补一补吧。

题主的问题太多了,每个展开都可以讲很多~作为自然语言处理(NLP)方向的研究生,我来回答一下题主关于自然语言处理如何入门的问题吧,最后再YY一下自然语言处理的前途~

有点话我想说在前头:不管学什么东西,都要跟大牛去学,真正的大牛可以把一件事解释的清清楚楚。Ifyoucan'texplainitsimply,youdon'tunderstanditwellenough.跟大牛学东西,你不会觉得难,一切都觉得很自然,顺利成章的就掌握了整套的知识。不过很遗憾,大牛毕竟是少数,愿意教别人的大牛更少,所以如果遇到,就不要强求语言了吧~

开始进入正题,我将介绍如何从零基础入门到基本达到NLP前沿:

----------NLP零基础入门----------

首推资料以及唯一的资料:

MichaelCollins,绝对的大牛,我心目中的偶像,这门课是我见过讲NLP最最最清楚的!尤其是他的讲义!Collins的讲义,没有跳步,每一步逻辑都无比自然,所有的缩写在第一次出现时都有全拼,公式角标是我见过的最顺眼的(不像有的论文公式角标反人类啊),而且公式角标完全正确(太多论文的公式角标有这样那样的错标,这种时候真是坑死人了,读个论文跟破译密码似的),而且几乎不涉及矩阵表示……(初学者可能不习惯矩阵表示吧)。最关键的是,Collins的语言措辞真是超级顺畅,没有长难句,没有装逼句,没有语法错误以及偏难怪的表示(学术圈大都是死理工科宅,语文能这么好真实太难得了)。《数学之美》的作者吴军博士在书中评价Collins的博士论文语言如小说般流畅,其写作功底可见一般。

如果能把Collins的课跟下来,讲义看下来,那么你已经掌握了NLP的主要技术与现状了。应该可以看懂部分论文了,你已经入门了。

----------NLP进阶----------

Collins的NLP课程虽然讲的清晰,不过有些比较重要的前沿的内容没有涉及(应该是为了突出重点做了取舍),比如语言模型的KN平滑算法等。此外,Collins的课程更注重于NLP所依赖的基础算法,而对于这些算法的某些重要应用并没涉及,比如虽然讲了序列标注的算法隐马尔可夫模型,条件随机场模型,最大熵模型,但是并没有讲如何用这些算法来做命名实体识别、语义标注等。

本课程偏算法的应用,算法的实现过的很快,不过上完Collins的课后再上感觉刚刚好~(这两门课是Coursera上仅有的两门NLP课,不得不佩服Coursera上的课都是精品啊!)

----------进阶前沿----------

-------------------------

最后简单谈一下这三者哪个更有发展潜力……作为一个NLP领域的研究生,当然要说NLP领域有潜力啦!

语义理解这个目前做的并不好,但已经有siri等一票语音助手了,也有watson这种逆天的专家系统了。继续研究下去,虽然离人工智能还相去甚远,但是离真正好用的智能助手估计也不远了。那时生活方式会再次改变。即使做不到这么玄乎,大大改进搜索体验是肯定能做到的~搜索引擎公司在这方面的投入肯定会是巨大的。

机器翻译这个不多说了,目前一直在缓慢进步中~我们已经能从中获益,看越南网页,看阿拉伯网页,猜个大概意思没问题了。此外,口语级别的简单句的翻译目前的效果已经很好了,潜在的商业价值也是巨大的。

现在国内IT互联网公司大部分NLP和IR人才被BAT公司垄断,导致市面上的优秀NLP人才极少,因此很多创业公司紧缺这方面的人才。从人工智能发展的趋势来看,我认为这是一个不错的领域,可以为之奋斗一生。

学位都是浮云,关键还是实力。

NLP几乎是互联网机器学习业务的必备技能。因为互联网内容最大比例的是文本。NLP挺好找工作的,但是最好机器学习的内容学全一点,毕竟实际工作内容是很多类型的,所以NLP是比较必要但不充分。根据付出就是感觉薪资不太给力,还有这东西不好创业或者接私活。但是单纯上班打工做做还是比较好的30~6,70万

目前看来,nlp的人在国内找工作机会比较窄,主要是BAT特别是百度比较多,然后美图,新浪,搜狗,乐视,360这些公司里有一些,再就是一些发展成熟的创业公司零零星星有一些团队。作为一个猎头,经常会和在湾区的datascientist聊过,他们还是希望在那边多待几年,将内心建设祖国的伟大中国梦再憋一憋。

作者:鱼小贱

国内NLP三大重镇:清华、哈工大、中科院(自动化所,计算所)。另外一些NLP比较强的高校:复旦大学黄萱菁、邱锡鹏组,苏州大学周国栋、朱巧明组,北京大学李素建组,东北大学朱靖波组等。

THE END
1.零基础小白也能学会的python网络爬虫接单赚钱!兼职+副业不知道大家有没有发现,近两年IT行业内卷非常的严重,python代做这块也超级内卷,培训机构每年都向社会输出了大量的python工程师,python爬虫这块因为接单门槛很低受到了极大的冲击。与其低价格去接爬虫的定制需求,还不如直接出售源码,实现薄利多销。比如“基于requests的电商爬虫程序”。我们正在搭建出售源码的平台,保证大家https://blog.csdn.net/biancheng_syz/article/details/144377162
2.python接私活哪个平台好?Worktile社区python接私活哪个平台好 根据个人经验和市场调研,以下是我个人认为python接私活比较好的平台: 1. 猪八戒网(zhubajie.com):猪八戒是一个专注于技术类任务接单的平台,有很多python开发者在上面接私活。作为一个综合性平台,猪八戒上的任务种类繁多,包括Web开发、数据分析、人工智能等等。你可以在平台上注册个人账号,https://worktile.com/kb/ask/94465.html
3.17个Python接私活的平台,总有适合你的,有技术就有收入这里为大家整理了17个国内Python接私活的平台,另外还有一些接私活的注意事项。当然这些平台不止Python语言能接单,事实上基本所有语言都能找到合适的单子~ 温馨提示: 1.没有第三方担保的个人单,风险较大尽量少接 2.无需求文档,讲不清具体需求的不接 3.没有预付的不做,结款方式按442的方式 http://www.360doc.com/content/20/0815/04/49586_930397050.shtml
4.现在接码平台哪个最好用腾讯云开发者社区接码平台是一种提供临时手机号码用于接收短信验证码的服务平台。以下是对现在接码平台的评价和推荐: 1. 现在接码平台中,最好用的是腾讯云的短信验证码接收服务。腾讯云短信验证码接收服务提供了稳定可靠的临https://cloud.tencent.com.cn/developer/information/%E7%8E%B0%E5%9C%A8%E6%8E%A5%E7%A0%81%E5%B9%B3%E5%8F%B0%E5%93%AA%E4%B8%AA%E6%9C%80%E5%A5%BD%E7%94%A8-article
5.分享几个我常用的私活接单渠道腾讯云开发者社区可见,大家都迫切地想要掌握Python,掌握爬虫技术。 在这个万物互联的时代,网络数据有着极大的商业价值。爬虫作为最好最快的数据采集技术,其重要程度不言而喻。 现在业界对爬虫技术服务的需求量很大,当下早已供不应求,不平衡的供需关系使爬虫服务的价格变高。几乎所有的Python圈内人,都在利用爬虫技术接私活。 https://cloud.tencent.com/developer/article/2250544
6.必看的八个优秀开源项目,你学会了吗?Weylus是一个基于Python 3的优秀跨平台软件,它可以将Android设备上的思维导图同步到电脑屏幕上进行展示和编辑。 大家好,我是Echa。 最近很多粉丝们问我,作为一名程序员能不能私底下接私活呢? 在这里小编统一回复大家:作为一名优秀的程序员,在上班之余,如果我们还有空余的时间和精力,那可不能浪费呀!这些空余的时间https://www.51cto.com/article/756135.html
7.整理了100个Python精砚,建议收藏!Python教程大家好,我是Python人工智能技术 Python为啥这么火,这么多人学,就是因为简单好学,功能强大,整个社区非常活跃,资料很多。而且这语言涉及了方方面面,比如自动化测试,运维,爬虫,数据分析,机器学习,金融领域,后端开发,云计算,游戏开发都有涉及。 万丈高楼平地起,Python这座大厦能够如此强大,就是拥有强大的成千上万的库的https://www.php.cn/faq/512434.html
8.老男孩教育「官网」Linux运维培训Python培训Python全栈开发工程师 网络安全工程师 Linux云计算微服务架构 Python自动化开发 软件测试&开发工程师 Go语言开发 MySQL DBA周末班 阿里云架构师 新媒体+短视频运营 Linux云计算SRE工程师 再高大上的云计算、大数据、物联网、AI技术都需要好的运行平台做支撑,绝大多数的服务器操作系统,都要基于Linux平台的运行。时下https://www.oldboyedu.com/?MMMM_baidupp&bd_vid=10850977486222277852
9.青鸟飞扬教育不想努力了,每月靠Python兼职也很爽1、有技术有基础,Python学得很好。但是,从来没接接过私活,没有兼职经验,担心踩坑。 2、Python学得一般,实战经验也一般,想快速提升技术,好接单赚钱。 3、技术0基础,想学Python赚钱,但不知道怎样学习,没有方向与路径,需要完善的学习方案。 Python兼职怎样做?有哪些单? 从事Python行业快6年了,当初刚学Python,就https://m.sohu.com/a/820564748_122067027/