Computing Reviews

Natural language processing recipes : unlocking text data with machine learning and deep learning using Python
Kulkarni A., Shivananda A., Apress, New York, NY, 2019. 260 pp. Type: Book
Date Reviewed: 11/26/21

Python--30 years in the making and named after the hilariously funny Monty Python’s Flying Circus--has become the preferred language for natural language processing (NLP) for a number of reasons: it is easier to program than C++ or Java and it is adept for multiple programming paradigms (for example, object oriented, functional, structured). As a multi-purpose language, it is used for back-end web development, data analysis, graphical user interface (GUI), game development, and, by its very nature, preferred for anything related to artificial intelligence (AI) and NLP because it is easy to learn and use.

The book is for “an NLP or machine learning enthusiast and intermediate Python programmer who wants to quickly master NLP” (p. xxi). To put that statement into perspective: anyone who has worked through Part 1 of Python crash course [1] is proficient enough to programmatically work through the recipes in this book. Natural language processing recipes is a deep-dive and hands-on exploration of all things NLP and machine learning. Each recipe starts with a problem statement, followed by a solution and an explanation of how it works.

With each chapter, the book and the coding samples increase their respective levels of complexity. The first three chapters of the book deal with the basics necessary to perform NLP tasks: “Extracting the Data,” “Exploring and Processing Text Data,” and “Converting Text to Features.” After readers learn in these chapters how to collect and convert data, chapter 4, “Advanced NLP,” addresses linguistic operations such as part-of-speech tagging, entity extraction, text classification, converting text to speech and vice versa, and language translation.

The last two chapters delve into more advanced uses of NLP. Chapter 5, “Implementing Industry Applications,” includes code samples on how to deal with consumer complaint classification, sentiment analysis for evaluating customer feedback, text summarization, and document management. Finally, in chapter 6, readers are provided with a very informative, albeit short, treatment of “Deep Learning for NLP.” It includes a very concise discussion of convolutional and recurrent neural networks.

I like the book’s terse manner of presenting the topics at hand. Moreover, the stringent structure of each recipe (that is, problem, solution, how it works) forces the reader to structure the problem-solving process even though some problem statements (“You want to read Word files”) find trivial solutions (for example, “use docx files”). As the problems and solutions get more complex, the cookie-cutter approach pays dividends: just follow the recipe.

A recipe is a straightforward set of instructions for combining ingredients to achieve an optimal result. The book thoroughly explains the “how” of each recipe, that is, it configures script and gives coding samples to get each project started. If you are more interested in how to use NLP programming than why the authors suggest one solution over another, this book is for you. Anyone expecting any scientific or historical pontification about NLP or deep learning will be disappointed. Monty Python would have expressed such disappointment as follows: “We interrupt this program to annoy you and make things generally irritating.”

More reviews about this item: Amazon


Matthes, E. Python crash course: a hands-on, project-based introduction to programming (2nd ed.). No Starch Press, San Francisco, CA, 2019.

Reviewer:  Klaus K. Obermeier Review #: CR147387 (2201-0002)

Reproduction in whole or in part without permission is prohibited.   Copyright 2022™
Terms of Use
| Privacy Policy