想快速入门NLP?我们测评了15门最火课程,帮你找到最适合的

 

大数据文摘出品

来源:airev

编译:DD、Andy

数年前,当小编刚踏足NLP领域时,还没有太多相关课程,找学习资料就颇费功夫;如今,当网上充斥着各种良莠不齐公开课时,从中挑选一门适合自己的又成了另一种颇费功夫,特别对于选择困难综合症患者。

该篇作者根据自己多年的实践经验,对网上诸多NLP公开课进行了评分与评论,很有参考价值。此外,作为涉足NLP也有数年的小编,也推荐不妨先挑一门Code-first课,强推Fast.AI,之后再用大学公开课继续深入,比如伯克利的Info256 以及斯坦福有名的cs224n,之后想再深入理论可以试试CMU的cs11-747.

 

接下来,我们就来看看作者对15节NLP课程的测评~

 

如果你的标准很高,那么选择一门符合你需求的网课就会变成了一件很困难的事。因为大部分网课都不全面,并不值得花太多时间在上面。

那么如果有人给你提供了一个关键的学习路径,并告诉你每个模块讲了什么,你该按照什么样的顺序去学习、进阶,你会怎么想?那一定是——完美!

这就是为什么我会写这篇NLP选课指南,利用了我8年的机器学习实践经验作为参考。我个人一共完成或浏览了15个最有名的课。在下面这份严格的评论中,我将重点放在它们提供的实践以及商业知识上。

无论你是刚开始接触NLP还是想在业务中实现一个最新算法,这篇文章都将为你提供巨大价值。下面就来看一下这条学习路径,并挑你最感兴趣的课程吧!

我理想中的NLP课程是这样的:

围绕着实践问题展开的;只涵盖对实践有用的信息,夹杂一些更深入的理论知识作为补充资料;内容是与时俱进的,至少每次业界有重大新闻,它都能及时更新相应内容;由一群业界经验丰富的专家编写的;包含能解决业务实际问题的真实代码。

但理想很丰满,现实……很骨感。

 

代码至上的网课们

A Code-First Introduction to NLP course

课程链接:

https://github.com/fastai/course-nlp

 

授课人:Fast AI

专业评分:8/10

工具和库:IPython notebooks, PyTorch, Fast.AI, spacy, sklearn, nltk

我的建议:

我个人很享受这种由上而下的学习方式。这门课内容非常扎实(毫无疑问,这是Jeremy Howard本人创建的课程),它很实用且内容在新算法的更新上很及时(最近更新到2019年夏天)。

缺点:

它缺少一些业界的实操案例,只关心算法的实际用法。

强推这门课!

SpaCy Tutorial

课程链接:

https://github.com/yuibi/spacy_tutorial

 

授课人:Yuibi Fujimoto

专业评分:7/10

工具和库:spacy,prodigy,sklearn

我的建议:

很完整、实用的指南。它只涉及到了spacy,而这也是很多人的真实需求。这门课对内容细节的把握非常到位。

Natural Language Processing

课程链接:

https://github.com/yandexdataschool/nlp_course/tree/master

 

授课人:Yandex

专业评分:7/10

工具和库:keras,nltk,gensim,sklearn,bokeh,matplotlib

我的建议:

这是一门很新的实战课程,它涉及到了最重要的一些领域。但同样地,它也没有涉及到现实任务的实战,只是专注于算法原理和它们直接的应用。

Natural Language Processing

课程链接:

https://www.coursera.org/learn/language-processing

 

授课人:俄罗斯国立高等经济大学计算机系(HSE Faculty of Computer Science) / Yandex

专业评分:3/10

工具和库: nltk, sklearn, tensorflow, genism,starspace

我的建议:

这是一门很简洁、基础的课程,它只涉及到一些很基础的理论。

缺点:

这门课不是很全面,也缺乏关于最新算法和实际业务案例内容。而且,它只使用tensorflow,没有涉及到keras,对于学习深度学习来说,这并不是一个很好的方式。

Advanced NLP with spaCy

课程链接:

https://course.spacy.io/en/

 

授课人:Explosion AI

专业评分:8/10

工具和库:spacy

我的建议:

这门课也只涉及到spacy,但是范围更广。它简单友好的操作界面深得我心。简短,但强推的一门课!在评分项目中,也有涉及到业界实操的内容!

Coursera-Natural Language Processing Certification in TensorFlow

课程链接:

https://www.coursera.org/learn/natural-language-processing-tensorflow

 

授课人:Laurence Moroney

专业评分:2/10

工具和库:Tensorflow

我的建议:

这门简短的课程介绍了一些基础知识,比如:分词、一些基础的词嵌入方法和序列模型。授课方式是理论+小测验。对新手来说,我并不推荐这门课程,因为它缺少太多内容。

Edx-Natural Language Processing Course

课程链接:

http://www.edx.org/course/natural-language-processing-nlp-2

 

授课方:微软

专业评分:7/10

我的建议:

这门课程介绍了机器学习和NLP领域中可使用的各种方法,你不光能学到经典算法、深度学习算法,还能了解到深度情感相似模型以及在现实工作中如何使用它们。每个模块都有自己的测验和代码作业,可以很好地帮助你理解学到的内容。

Codecademy-Natural Language Processing

课程链接:

https://www.codecademy.com/learn/natural-language-processing

 

专业评分:5/10

工具和库:nltk, re

我的建议:

这门课时长约10小时,算是NLP入门级别的课程,内容包含:正则表达式、文本处理、词向量、tf-idf。是一门更适合完全没有NLP基础的人的课程。

DataCamp-Natural Language Processing Fundamentals in Python

课程链接:

https://www.datacamp.com/courses/natural-language-processing-fundamentals-in-python

授课人:Katharine Jarmul

专业评分:7/10

工具和库:nltk, re, genism, polyglot, spacy, sklearn

我的建议:

这门课主要讲的是如何解决一些小问题。它介绍了一些生成词向量和预处理的技巧,像tf-idf和spacy。我认为这也是一门比较适合刚入门、需要一些实战经验的新手课程。因此我们决定在最后的对比中不把它加入比较。

大学公开课

伯克利 - Applied Natural Language Processing

课程链接:

http://people.ischool.berkeley.edu/~dbamman/info256.html

授课人:David Bamman

专业评分:8/10

我的建议:

这门课比较适合有python编程经验,但不了解nlp的人。在这门课中,你会用到目前流行的python库,如:sklearn、keras、spacy,去解决分类、回归问题。我认为,这种强制性的学期制课程比较适合学生党学习。

华盛顿大学(UW) - Natural Language Processing

课程链接:

https://courses.cs.washington.edu/courses/cse517/17wi/

授课人:Yejin Choi

专业评分:6/10

我的建议:

这门课面向的是想学习nlp基础方法理论的新手。这门网课是在2017年录制的,所以你无法从里面找到任何现在最新的内容。它涉及到的当时(2017)最新的内容有:序列、语义和深度学习相关内容。但我认为,学这门课的人需要在课后有自己的探索和研究,去巩固学到的知识。

牛津 - Deep Learning for Natural Language Processing

课程链接:

https://www.cs.ox.ac.uk/teaching/courses/2016-2017/dl/

授课人:Phil Blunsom

专业评分:8/10

我的建议:

这门课需要你有机器学习方面的经验,以及很强的数学背景(包括:概率、线性代数和连续数学)。你将会学到从RNN、BPTT到针对神经网络优化GPU的很多知识和技能。我建议学完这门课的学生再去学习一下最新的模型和理论,因为它并没有实时更新相关内容。

以色列特拉维夫大学 - Advanced Methods in Natural Language Processing

课程链接:

https://www.cs.tau.ac.il/~joberant/teaching/nlp_spring_2019/index.html

授课人:Jonathan Berant

专业评分:7/10

我的建议:

这门课教授的是NLP领域中最新的一些方法。它只需要你有一定的机器学习背景,nlp背景并不是必须的。而且,授课方准备了很多值得阅读的报告,这也非常有助于学习。

斯坦福 - From Languages to Information

课程链接:

https://web.stanford.edu/class/cs124/

授课人:Dan Jurafsky

专业评分:6/10

我的建议:

虽然这是门NLP课程,但它也涉及到很多机器学习方面的内容。其中,关于社交网络的内容在其他网课中并没有很好地展开,可以算是这门课的一个亮点。通过这门课,你可以收获很广的知识面,但对于只钻研nlp的人来说,我并不是很推荐这门课。

斯坦福cs224n - Natural Language Processing with Deep Learning

课程链接:

http://web.stanford.edu/class/cs224n/

授课人:Chris Manning, Matthew Lamm

专业评分:8/10

我的建议:

这是面向项目的最新课程,包括这个领域的最新进展。要上这门课,你需要有数学和编程的基础(Python或强大的C++能力)。我只会推荐有一定经验的人去上这门课,你会从中学到更深入的知识。

总结

在分析完所有课程后,我得出的结论是:在最新的算法和企业项目实例方面,没有任何一门课是足够全面的。它们大部分都缺少实战练习,而这大大地阻碍了知识的吸收。

现在,让我们来总结一下工程师在学习一门NLP课程时遇到的主要挑战:

课程内容很快就会过时,我希望它始终包含最新(不一定是复杂的)知识;没有或过少的实践练习来增强在课程中学到的理论知识;如果卡住,没有人能帮助你进行练习;课程以算法原理为重点,而不是如何解决实际问题。

许多不合标准的课程甚至都已不再更新。人们掉入了坑中并为此付出代价,却没有从中收获太多实际价值。

相关报道:

https://airev.us/ultimate-guide-to-natural-language-processing-courses/

你可能感兴趣的:(人工智能)