Choosing the right course for a Practical NLP Engineer

Selecting an online course that will match your requirements is very frustrating if you have high standards. Most of them are not comprehensive, and a lot of time spent on them is wasted.

How would you feel if someone would provide you a critical path and tell, what modules exactly and in which order will offer you comprehensive, expert-level knowledge? Awesome.

That is why I am going to help you with this guide to selecting a Natural Language Processing course, utilizing my eight years of practical experience in Machine Learning. I've personally completed or skimmed over the 15 most popular courses.

In my rigorous review, I focus on the practical and business knowledge that they provide.

This article was thought to provide great value whether you are just starting your journey with NLP or thinking how to implement modern algorithms into your business model. Take a look at the Critical Path and pick modules that you are interested in the most.

My dream NLP course

What I have in mind when I think about the perfect one:

  • It is organized around major practical problems.
  • It covers only the practically useful information with optional references to more in-depth, supplemental parts of the theory.
  • Content is being frequently updated, at least every time when there is a major change in the state of the art.
  • Content is certified by a group of experts with a lot of practical experience in the field.
  • It contains real-life code samples that solve real business problems.

Reality is more complicated...

Code-first courses

1. A Code-First Introduction to NLP course

Author: Fast AI

Expert's opinion: 8/10

Subjective opinion & comments:
I personally enjoy the top-down way of learning. The course is solid-written (no wonder, the editor was Jeremy Howard himself). It is very practical and updated by the latest algorithms (state of at least the summer of 2019). It lacks the practical business approach and is concentrated only on algorithms on their actual usage. Highly recommended lecture!

Tools & Libraries: IPython notebooks, PyTorch, Fast.AI, Spacy, Sklearn, Nltk

2. SpaCy Tutorial

Author: Yuibi Fujimoto

Expert's opinion: 7/10

Subjective opinion & comments:
I personally enjoy the top-down way of learning. The course is solid-written (no wonder, the editor was Jeremy Howard himself). It is very practical and updated by the latest algorithms (state of at least the summer of 2019). It lacks the practical business approach and is concentrated only on algorithms on their actual usage. Highly recommended lecture!

Tools & Libraries: Spacy, Prodigy, Sklearn

3. Natural Language Processing

Author: Yandex

Expert's opinion: 7/10

Subjective opinion & comments:
This is a very fresh and practical course covering the most important areas. Sadly it didn't focus on the practical business tasks, but it is only focused on algorithms and their direct applications.

Tools & Libraries: Keras, NTLK, Gensim, Sklearn, Bokeh, Matplotlib

4. Natural Language Processing

Author: HSE Faculty of Computer Science / Yandex

Expert's opinion: 3/10

Subjective opinion & comments:
This is a short, basic course that is mostly focused on a raw theory. It isn't comprehensive, lacks recent algorithms and practical business cases. It uses raw Tensorflow without Keras, that is not a recommended way to learn deep learning.

Tools & Libraries: NLTK, Sklearn, Tensorflow, Gensim, StarSpace

5. Advanced NLP with spaCy

Author: Explosion AI

Expert's opinion: 8/10

Subjective opinion & comments:
This course is focused on Spacy alone. However, it covers a broad range of topics. The clean and nice course interface made me smile, it is very esthetic. Short course, but highly recommended! It contains real-time graded practical exercises!

Tools & Libraries: Spacy

6. Natural Language Processing Certification in TensorFlow (Coursera)

Author: Laurence Moroney

Expert's opinion: 2/10

Subjective opinion & comments:
This short course explains basic knowledge, such as tokenizing, few embedding techniques, and sequence models. It is focused on theory with short quizzes. We wouldn't recommend it even to beginners, because it lacks in almost every aspect.

Tools & Libraries: TensorFlow

7. Natural Language Processing Course (edX)

Author: Microsoft

Expert's opinion: 7/10

Subjective opinion & comments:
This short course introduces methods to work on NLP and machine learning techniques that can be used for that. You can learn about classical and deep learning algorithms as well as Deep Semantic Similarity Model and how to use them in real-life situations. Every module has knowledge checks and practical assignments, which are helpful in a deeper understanding of the topic.

8. Natural Language Processing (Codecademy)

Expert's opinion: 5/10

Subjective opinion & comments:
This short course (~10 hours) is an introduction to NLP. It contains basic descriptions of regular expressions, text processing, word embedding, and term frequency-inverse document frequency. In my honest opinion, it suits the best people with no prior NLP experience who want to get a grasp of it.

Tools & Libraries: NLTK, re

9. Natural Language Processing Fundamentals in Python (Datacamp)

Author: Katharine Jarmul

Expert's opinion: 7/10

Subjective opinion & comments:
This course is based on the idea of teaching by solving short problems. It introduces some embeddings and preprocessing techniques as well as TF-IDF and introduction to SpaCy. We think that it is a very good course for beginners that ends with a bigger practical exercise.

We've decided to exclude it from the comparison.

Tools & Libraries: NLTK, re, Gensim, polyglot, spaCy, scikit-learn

University Courses

10. Applied Natural Language Processing (Berkley)

Author: David Bamman

Expert's opinion: 8/10

Subjective opinion & comments:
This course is for people with prior python programming experience, but new to NLP. You will use popular libraries such as scikit-learn, keras, spacy to implement solutions for classification and regression problems. We think that obligatory semester-long projects and the introduction of modern neural methods will be beneficial for the student.

11. Natural Language Processing (Washington)

Author: Yejin Choi

Expert's opinion: 6/10

Subjective opinion & comments:
This course is aimed at NLP beginners that would like to get a theoretical understanding of basic techniques. It was created in 2017, so you won't find there any modern solutions. This course presents topics such as sequences, semantics, and deep learning, but we think that students should make his own research after finishing it to deepen his knowledge.

12. Deep Learning for Natural Language Processing (Oxford)

Author: Phil Blunsom

Expert's opinion: 8/10

Subjective opinion & comments:
This course requires prior machine learning experience and broad mathematical knowledge, including probability, linear algebra, and continuous mathematics.

You will be able to acquire a broad set of skills starting from Recurrent Neural Networks, Backpropagation Through Time and ending on heavily practical skills such as GPU optimization for Neural Networks. We would recommend students finishing this course to make further research on newly developed methods because this one course is not being updated.

13. Advanced Methods in Natural Language Processing (Tel Aviv University)

Author: Jonathan Berant

Expert's opinion: 7/10

Subjective opinion & comments:
The course offered by Tel Aviv University is focused on teaching modern methods in the field of NLP. It requires prior machine learning knowledge, but no NLP experience. They have prepared a repository of reports really worth reading.

14. From Languages to Information (Stanford)

Author: Dan Jurafsky

Expert's opinion: 6/10

Subjective opinion & comments:
This course is focused on NLP but introduces students also to other machine learning topics. One of them is social networks that aren't covered well in other courses, so it is a very unique point of this one. Students of this course will gain broad knowledge, but I won't recommend it to people interested strictly in NLP.

15. Natural Language Processing with Deep Learning (Stanford)

Author: Chris Manning, Matthew Lamm

Expert's opinion: 8/10

Subjective opinion & comments:
Project-oriented up to date course that includes recent advances in the field. Prior mathematical and programming (Python or strong C++) is required. I recommend tit course only to experienced people that want to gain more in-depth knowledge.

Summary

After analyzing all the courses, I have come to the conclusion that none of them is fully comprehensive when it comes to modern algorithmic methods, and business use cases of NLP are even more obsolete. Most of them lack true practical exercises, which based on psychological studies conducted at Kent State University, bly hampers knowledge ingestion.

Let's recap the main challenges that practical engineers face during a typical NLP course:

  • The course becomes quickly obsolete. I expect the course to contain the most recent (not necessarily complex) knowledge.
  • There are none or not enough practical exercises to reinforce theoretical knowledge gained during the course.
  • No one would help you to go through the exercises if you got stuck.
  • The course is algorithm-focused instead of teaching how to solve real problems.

The End

There are many sub-standard courses that are not even being updated anymore. People fall in the trap and pay for them, but get no real practical value from them.