Natural Language Processing in Python
Practical techniques for preparing text for building knowledge graphs, custom search, content recommenders, and other areas of AI applications…
I’ve been teaching a sequence of courses which take Python programmers through an introduction to popular NLP tools and techniques — based on spaCy — on through more advanced group projects incorporating NLP and ML, as an intro to AI applications.

Get Started with NLP in Python
If you’re new to NLP, this course will provide you with initial hands-on work: the confidence to explore much further into use of deep learning with text, natural language generation, chatbots, etc. First, however, we’ll show you how to prepare text for parsing, how to extract key phrases, prepare text for indexing in search, calculate similarity between documents, etc.
This first course in my new series is for you because…
- You’re a Python programmer and need to learn how to use available NLP packages
- You’re on a data science team and have some Python experience, and now you need to leverage NLP and text mining
- You are interested in chatbots, deep learning, and related AI work, and want to understand the basics for handling text data in those use cases
Upcoming: (will keep updated)
- 2019–11–22, spaCy tuTorial: natural language work at Big Things conference in Madrid
Previous:
- 2019–10–21, Curso: Natural Language Processing at Big Data Coruña
- 2019–09–09, Natural Language in Python using spaCy: An Introduction for Domino Data Lab
- 2018–11–13, Get Started with NLP + AI in Python @ BDS 18, teaching with Daniel Vila Suero
- 2018–05–07, Get Started with Natural Language Processing in Python
- 2018–04–02, Get Started with Natural Language Processing in Python
- 2018–03–12, Get Started with Natural Language Processing in Python
- 2018–02–12, Get Started with Natural Language Processing in Python
- 2017–12–14, Get Started with Natural Language Processing in Python
- 2017–11–15, Get Started with NLP + AI in Python @ BDS 17, teaching with Daniel Vila Suero
- 2017–10–11, Get Started with Natural Language Processing in Python
- 2017–09–11, Get Started with Natural Language Processing in Python
- 2017–07–12, Get Started with Natural Language Processing in Python
- 2017–06–22, Get Started with Natural Language Processing in Python
- 2017–05–03, Get Started with Natural Language Processing in Python
- 2017–02–08, Get Started with Natural Language Processing in Python
- 2016–12–14, Get Started with Natural Language Processing in Python
Hands-on course materials are based on Jupyter notebooks and include instructions for installing Python libraries, although latter versions of the course run directly on Google Colab with no installations required.
See the repo https://github.com/DerwenAI/spaCy_tuTorial and related material in the https://github.com/DerwenAI/pytextrank library.
I’ve also been coordinating a machine learning competition that uses NLP, see https://github.com/Coleridge-Initiative/rclc for more details.
Backstory
In late November 2016, we launched a new program at O’Reilly Media to introduce a live online training program, as a new business unit which I’d helped to create. Although we’d produced similar online courses through O’Reilly for 14 months prior, moving that exclusively into a membership model was new territory. After months of preparation, research, planning, contingencies, position papers, etc., we took a deep breath and jumped in with both feet. The result? Thousands of people registered and waitlisted for courses within the first two days. Years later, demand has only increased.
Keep in mind, these courses are the opposite of MOOCs. We realized how the industry had swung too far in the wrong direction with Ed Tech, how VC-backed tech startups had taken seriously detrimental short-cuts to attempt scale in learning, how current trends in “education” at scale opposed our ethos and experience at O’Reilly. Our origin story as a company was about peer teaching, with Tim and Dale active at Unix user group meetings. We’ve always been about peer teaching — that’s one reason I was eager to lead this program, calling back to my teaching fellowship many years ago at Stanford, where I’d helped establish a popular peer teaching program there.