Natural Language Processing with Python and spaCy: A Practical Introduction by Yuli Vasiliev is exactly as the title suggests, a good introduction to NLP using python and the spaCy library. In just 217 pages the book succinctly explains how you can use python to identify dependency grammar and empirically analyze sentence structures. Throughout the book you learn how to use the NLP program spacy to diagram sentences and identify key parts of the sentence which can help a computer program derive their meaning and intent. The books helps you iteratively build the components of a chatbot and concludes with the deployment of this chatbot on telegram. The book also instructs you on how to use the telegram, wikipedia, and clarifai (image recognition software) APIs in python.
A few notes that will help you make the most of your learning while working through this book. The book provides you with code written is a series of python scripts. Rather than writing these scripts in the python shell, I recommend you use a jupyter notebook to follow along with the examples. This will allow you to easily edit mistakes you make as well as save earlier scripts for use in later chapters. I also highly recommend reading the linguistic primer in the Appendix before reading the rest of the book. It is short but informative.
Additionally, the book was published in 2020 which means that some of the commands in the code examples are now out of date. In chapter 11 you will use python-telegram-bot to interact with the telegram API. To follow along with the examples in the book, I recommend installing an earlier version of python-telegram-bot with the following command to avoid errors:
pip install python-telegram-bot==13.7
Similarly in chapter 12 you will be introduced to the clarifai API. The API the book recommends is outdated so I recommend installing the clarifai-grpc API with the following command and learning more about its use here.
pip install clarifai-grpc
The recent proliferation of transformer-based NLP models will make this book seem a little rudimentary but I ultimately recommend it as a quick and worthwhile introduction to natural language processing concepts.