作者:陈见耸
链接:https://www.zhihu.com/question/19895141/answer/167512928
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

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

要找一个合适的的自然语言处理相关的开源项目。这个项目可以是与自己工作相关的,也可以是自己感兴趣的。项目不要太大,以小型的算法模块为佳,这样便于独立实现。像文本领域的文本分类、分词等项目就是比较合适的项目。 运行程序得到项目所声称的结果。然后看懂程序,这期间一般需要阅读程序实现所参考的文献。最后,自己尝试独立实现该算法,得到与示例程序相同的结果。再进一步的,可以调试参数,了解各参数对效果的影响,看是否能得到性能更好的参数组合。

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

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

二、对问题进行深入认识

对问题的深入认识通常来源于两个方面,一是阅读当前领域的文献,尤其是综述性的文献,理解当前领域所面临的主要问题、已有的解决方案有哪些、有待解决的问题有哪些。这里值得一提的是,博士生论文的相关文献介绍部分通常会对本问题做比较详细的介绍,也是比较好的综述类材料。

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

三、对算法进行深入理解

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

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

国外的书籍《Pattern Recognition and Machine Learning》主要从概率的角度解释机器学习的各种算法,也是不可多得的入门教材。如果要了解最新的深度学习的相关算法,可以阅读被誉为深度学习三架马车之一Bengio所著的《Deep Learning》。 在学习教材时,对于应用工程师来说,重要的是理解算法的原理,从而掌握什么数据情况下适合什么样的数据,以及参数的意义是什么。

四、深入到领域前沿

自然语言处理领域一直处在快速的发展变化当中,不管是综述类文章还是书籍,都不能反映当前领域的最新进展。如果要进一步的了解领域前沿,那就需要关注国际顶级会议上的最新论文了。下面是各个领域的一些顶级会议。这里值得一提的是,和其他人工智能领域类似,自然语言处理领域最主要的学术交流方式就会议论文,这和其他领域比如数学、化学、物理等传统领域都不太一样,这些领域通常都以期刊论文作为最主要的交流方式。 但是期刊论文审稿周期太长,好的期刊,通常都要两三年的时间才能发表,这完全满足不了日新月异的人工智能领域的发展需求,因此,大家都会倾向于在审稿周期更短的会议上尽快发表自己的论文。 这里列举了国际和国内文本领域的一些会议,以及官网,大家可以自行查看。

国际上的文本领域会议:

ACL:http://acl2017.org/ 加拿大温哥华 7.30-8.4

EMNLP:http://emnlp2017.net/ 丹麦哥本哈根 9.7-9.11

COLING:没找到2017年的

国内会议:

CCKS http://www.ccks2017.com/index.php/att/ 成都 8月26-8月29

SMP http://www.cips-smp.org/smp2017/ 北京 9.14-9.17

CCL http://www.cips-cl.org:8080/CCL2017/home.html 南京 10.13-10.15

NLPCC http://tcci.ccf.org.cn/conference/2017/ 大连 11.8-11.12

NCMMSC http://www.ncmmsc2017.org/index.html 连云港 11.11 - 11.13

像paperweekly,机器学习研究会,深度学习大讲堂等微信公众号,也经常会探讨一些自然语言处理的最新论文,是不错的中文资料。

五、当然,工欲善其事,必先利其器。我们要做好自然语言处理的项目,还需要熟练掌握至少一门工具。当前,深度学习相关的工具已经比较多了,比如:tensorflow、mxnet、caffe、theano、cntk等。这里向大家推荐tensorflow,自从google推出之后,tensorflow几乎成为最流行的深度学习工具。究其原因,除了google的大力宣传之外,tensorflow秉承了google开源项目的一贯风格,社区力量比较活跃,目前github上有相当多数量的以tensorflow为工具的项目,这对于开发者来说是相当大的资源。

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

自然语言处理如何入门相关推荐

  1. 【组队学习】【29期】9. 基于transformers的自然语言处理(NLP)入门

    9. 基于transformers的自然语言处理(NLP)入门 航路开辟者:多多.erenup.张帆.张贤.李泺秋.蔡杰.hlzhang 领航员:张红旭.袁一涵 航海士:多多.张红旭.袁一涵.童鸣 基 ...

  2. 【组队学习】【28期】基于transformers的自然语言处理(NLP)入门

    基于transformers的自然语言处理(NLP)入门 论坛版块: http://datawhale.club/c/team-learning/39-category/39 开源内容: https: ...

  3. 自然语言处理从入门到应用——自然语言处理的基础任务:词性标注(POS Tagging)和句法分析(Syntactic Parsing)

    分类目录:<自然语言处理从入门到应用>总目录 词性标注 词性是词语在句子中扮演的语法角色,也被称为词类(Part-Of-Speech,POS).例如,表示抽象或具体事物名字(如" ...

  4. 《自然语言处理实战入门》 ---- 总目录

    文章大纲 前言 综论 第 一 部分 :NLP 前置知识 开发环境 基础技术 网络爬虫 机器学习必知必会开源库 深度学习基础 常用资源 第 二 部分:NLP 基础理论 序列标注与分词算法 词嵌入(分布式 ...

  5. 自然语言处理从入门到应用——词向量的评价方法

    分类目录:<自然语言处理从入门到应用>总目录 对于不同的学习方法得到的词向量,通常可以根据其对词义相关性或者类比推理性的表达能力进行评价,这种方式属于内部任务评价方法(Intrinsic ...

  6. 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介...

    <自然语言处理实战入门> ---- 第4课 :中文分词原理及相关组件简介 之 语言学与分词技术简介 https://edu.csdn.net/course/play/20769/25954 ...

  7. 《自然语言处理实战入门》 第三章 :中文分词原理及相关组件简介 ---- 语言学与分词技术简介

    文章大纲 0.内容梗概 1. 汉语语言学简介 1.1 汉语与汉字的起源 1.2 汉字的统一与演变 1.3 印欧语系与汉藏语系 1.4 语言区别对于NLP 的影响 2. 词汇与分词技术简介 2.1 汉语 ...

  8. 《自然语言处理实战入门》 ---- 第4课 :中文分词原理及相关组件简介 之 汉语分词领域主要分词算法、组件、服务(上)...

    目录 0.内容梗概 1. 基于传统统计算法的分词组件 1.1 hanlp : Han Language Processing 1.2 语言技术平台(Language Technology Platfo ...

  9. 自然语言处理从入门到应用——自然语言处理的语言模型(Language Model,LM)

    分类目录:<自然语言处理从入门到应用>总目录 语言模型(Language Model,LM)(也称统计语言模型)是描述自然语言概率分布的模型,是一个非常基础和重要的自然语言处理任务.利用语 ...

  10. 自然语言处理从入门到应用——动态词向量预训练:ELMo词向量

    分类目录:<自然语言处理从入门到应用>总目录 在双向语言模型预训练完成后,模型的编码部分(包括输入表示层以及多层堆叠LSTM)便可以用来计算任意文本的动态词向量表示.最自然的做法是使用两个 ...

最新文章

  1. Struts2教程6:在Action类中获得HttpServletResponse对象的四种方法
  2. Linux上使用find、xargs、grep递归的查找指定文件类型中的内容
  3. Hoogle之装饰模式设计手机(下)
  4. 【总结】循序渐进,有三AI不得不看的技术综述(超过100篇核心干货)
  5. 安卓笔记--intent传值不更新问题
  6. 肝!不需要一行 Python 代码,也可以自动获取数据
  7. 数组中的第k个最大元素—leetcode215
  8. 闲谈:我为什么热爱开源
  9. WebSSH2安装过程可实现WEB可视化管理SSH工具
  10. jquery显示和隐藏元素
  11. LeetCode 154 寻找旋转排序数组中的最小值 II
  12. 粘包拆包,Netty及远洋通信中的解决方案!超实用
  13. 【java】java 如何不使用第三个变量来交换两个数的值
  14. 完美解决 fatal: unable to access ‘https://github.com/.../.git‘: Could not resolve host: github.com
  15. 学校计算机维护投标书,信息化系统硬件及应用系统安全运维服务投标书范本
  16. linux 的vi命令详解,Linux vi 命令详解
  17. Apple Store教育优惠(161103)
  18. 宝塔+青龙面板+机器人+诺兰
  19. 基于51单片机无线门铃控制系统设计(毕设课设)
  20. MQTT协议之订阅及发布(使用paho-mqtt-client或mqttv3实现)

热门文章

  1. 如何通过API接口从淘宝(或天猫店)复制宝贝到拼多多接口代码对接教程
  2. 《薄冰实用英语语法详解》连载之七:助动词
  3. CXF使用教程(一)——简介以及入门案例
  4. 软件确认与软件验证的区别
  5. 10大android pad,外媒评2014年十佳国产Android平板电脑
  6. [ Redis10篇] 集群Cluster相关灵魂16问
  7. valet mac_将Laravel Valet用于Super Quick Dev Server
  8. 做自媒体副业真能月入上万?这篇分享,不藏私
  9. 国家基本比例尺分幅土地利用现状图制作
  10. SpringBoot 整合 Neo4j,图数据库 YYDS!