自然语言处理如何入门

来源:互联网 发布:端口数据监听工具 编辑:程序博客网 时间:2024/06/06 15:37

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

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

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

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

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

二、对问题进行深入认识

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

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

三、对算法进行深入理解

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

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

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

四、深入到领域前沿

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

国际上的文本领域会议:

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

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

COLING:没找到2017年的

国内会议:

CCKS ccks2017.com/index.PHP/ 成都 8月26-8月29

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

CCL cips-cl.org:8080/CCL201 南京 10.13-10.15

NLPCC tcci.ccf.org.cn/confere 大连 11.8-11.12

NCMMSC ncmmsc2017.org/index.ht 连云港 11.11 - 11.13

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

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

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

原创粉丝点击