REVIEW - Natural Language Processing with Python and spaCy - A Practical Introduction


Natural Language Processing with Python and spaCy - A Practical Introduction


Yuli Vasiliev




No Starch Press (2020)




Balachandran Sivakumar


November 2020



Verdict: Recommended.

Starting with the fundamentals on NLP and gradually progressing up to train custom models for NER tagging and dependency parsing, this book is an excellent choice if you are just getting started with NLP and you are trying to do it with spaCy. The book covers all topics from word vectors and text-processing pipeline to training custom models and deploying the entire solution.

The book takes a hands-on approach, but with sufficient theoretical background in explaining the various processes involved in NLP and how achieve the same with spaCy. Like any book on programming or programming tools, the reader should try out the excerpts and code snippets as they read along to understand the tool better. The author has made an excellent choice in building a chatbot application to explain the NLP concepts and features offered by spaCy. Since the readers have a real-world problem to solve while learning spaCy, having a computer with Python and spaCy installed helps a lot. The book does cover how to install spaCy

If you are reading this book while building a non-trivial NLP based solution, the sections on training customer models, Intent Recognition and storing the extracted intent or meaning in a persistent store for further processing, help a lot. For example, the topic on training the Entity Recognizer to identify and tag entities in a sentence is quite well written and helps the reader in training a sophisticated entity recognizer that can, say, work on colloquial terms too. It, in fact, helped this reviewer solve a problem that had been around for a few months in their NLP based topic-inference system.

Finally, if you are completely new to NLP, but have to work on a project involving NLP, start with the appendix on Linguistic Grammar. It helps the reader in gaining a basic understanding of concepts and terminologies. Also, someone who is used to NLP but new to spaCy can probably choose to read the book in an order of their choice. Though there are occasional references to content from the earlier chapters, it does not impact learning even if read in non-sequential order.

Even if you are a seasoned NLP specialist who is new to just spaCy, you’ll find this book as a good reference to get started with spaCy.