Practical NLP: The perfect guide for executives and machine learning practitioners – TechTalks

Practical Natural Language Processing provides in-depth coverage of NLP with Python machine learning libraries and beyond.

This article is part ofAI education, a series of posts that review and explore educational content on data science and machine learning. (In partnership withPaperspace)

By many accounts, linguistics is one of the most complicated functions of the human mind. Likewise, natural language processing (NLP) is one of the most complicated subfields of artificial intelligence. Most books on AI, including educational books on machine learning, provide an introduction to natural language processing. But the field of NLP is so vast that covering all its aspects would require several separate books.

When I picked up Practical Natural Language Processing: A Comprehensive Guide to Building Real-World NLP Systems, what I expected was a book that covered Python machine learning for NLP in depth. Though the book didnt exactly turn out to be what I had in mind, it provided the exact kind of coverage that the field misses in the craze and hype that surrounds deep learning today.

The best way to describe Practical Natural Language Processing is a zoomed-out view of the NLP landscape, a close-up of the NLP process, and plenty of practical tips and guidelines to avoid making mistakes in one of the most important fields of AI.

What you take away from Practical Natural Language Processing depends on two things: Your previous background in mathematics and Python machine learning, and your involvement in the field. I recommend this book to two types of readers:

Ironically, these two audiences are at two ends of the NLP spectrum. On the one hand, you have hardcore Python machine learning coders while on the other, you have people whose daily routine doesnt involve coding.

But the authors of Practical Natural Language Processing, who have extensive experience implementing NLP in different fields, have managed to write a book that will provide value to both audiences. Veteran coders can go through the entire book, the accompanying Jupyter Notebooks, and the many references the authors provide. Executives, on the other hand, can skip over the code and read the high-level overview that each chapter provides before digging into the technical Python coding.

I would not recommend this book to novice Python machine learning coders. If you dont have experience with numpy, pandas, matplotlib, scikit-learn, tensorflow, and keras libraries, then this book probably isnt for you. I suggest you go through a book or course on data science and another on Python machine learning before picking up Practical Natural Language Processing.

Anyone who has done machine learning knows that the development cycle of ML applications is different from the classic, rule-based software development lifecycle. But many people mistakenly think that the NLP development pipeline is identical to the data gathering, modeling, testing cycle of any machine learning application. There are some similarities, but there are also many nuances that are specific to NLP.

Some of the most valuable parts of Practical Natural Language Processing are the overview of the NLP development pipeline for different applications. The book brilliantly gives a high-level view of natural language processing that is detached from machine learning and deep learning.

Youll get to know a lot of the challenges involved in gathering, cleaning, and preparing data for NLP applications. Youll also learn about important NLP disciplines such as information extraction, name-entity recognition, temporal information extraction, and more.

One of the key challenges of NLP is that data tends to be very application-specific. Recent advances in deep learning have enabled the development of very large language models that can adapt to different tasks without further tuning. But in a lot of applications and settings, the use of expensive deep learning language models is still not feasible.

Practical Natural Language Processing shows how you can start with small and simple NLP applications and gradually scale them and transition to more complex and automated AI models as you gather more data on your problem domain.

As you go deeper into the book, youll get to know the specific development cycle for different NLP applications such as chatbots, search engines, text summarization, recommender systems, machine translation, ecommerce, and more.

At the end of the book, youll get a review of the end-to-end NLP process and some of the key questions that can determine which path and technology to choose when starting a new application. There are also important guidelines on storing and deploying models and problems youll need to solve in real-world NLP applications, such as reproducing results, which is a great challenge in machine learning in general.

These high-level discussions make Practical Natural Language Processing a valuable read to both developers, team leaders, and executives at tech companies.

But the book also contains a lot of coding examples, which Ill get to next.

Although a large part of Practical Natural Language Processing is about using Python machine learning libraries for language tasks, the book has much more to offer. Interestingly, the most important takeaway is that you dont need machine learning for every single task. In fact, large deep learningbased language models should be your last resort in most cases. This is a recurring theme across the book andin my opiniona very important one, given all the excitement surrounding the use of larger and larger neural networks for NLP tasks.

As the authors will show you, in many cases, simple solutions such as regular expressions will provide better results. At the very least, the simpler rule-based systems will provide you with an interim solution to gather the data required for the more complex AI models.

With that out of the way, the book does go deep on Python machine learning and deep learning for natural language processing. Practical Natural Language Processing provides in-depth coverage of many critical concepts such as word embeddings, bag of words, ngrams, and TF-IDF.

Aside from the popular machine learning and NLP libraries, the book also introduces and explore Python NLP libraries that basic machine learning books dont cover, such as spacy and genism. Theres also a good deal on using other Python tools to better assess the performance of language models, such as t-SNE for visualizing embeddings and LIME for dealing with AI explainability issues.

As you go into the details of each technique and its associated libraries, the authors continue to provide some key tips, such as how to decide between general-purpose embeddings and hand-crafted features.

The book also introduces you to Googles BERT (but you have to bring your own pytorch skills).

I had mixed feelings about the code samples and how theyre presented in the book. On the one hand, there are plenty of valuable material in the Jupyter Notebooks. However, the code tends to get a bit buggy due to bad file addresses in some of the notebooks. (You also need to spend a great deal of time downloading embedding and models from other sources, which is inevitable anyway.)

In the book, snippets are presented very scantly with only the very important parts highlighted. But in many cases, those parts have been selected from the middle of a sequence, which means you wont make sense of it unless you also open the original code file and read what has come before (to their credit, the authors have taken great care to comment the code comprehensively.)

Theres also a lot of we leave it as an exercise for the reader holes, which give some great directions for personal research but would not be appealing to less experienced developers.

Another great thing about Practical Natural Language Processing is the introduction of a roster of tools and application programming interfaces (API) that let you get started with language tasks without much coding.

The point is, you dont need to reinvent the wheel, and theres a likely chance that theres already a tool out there that can boost your initial efforts to integrate NLP into your applications.

Throughout the book, youll get to use tools such as DialogFlow, Elasticsearch, and Semantic3 for different NLP applications. Youll also see how APIs such as Bing can abstract language tasks (if you have the financial means to rent them).

Youll also get an idea of how these different pieces can be integrated into other NLP applications or gradually transitioned to your own custom-made language models.

Familiarity with these tools will also be very useful for product managers who must decide on which direction to take with the development of their applications given their time, budget, and talent constraints.

Practical Natural Language Processing is a must-read for anyone who wants to become seriously involved in NLP. Whether youre a c-level executive or a hands-on coder, this book is for you.

However, dont pick up this book if you just want to learn the basics of NLP. There are plenty of good Python machine learning books and courses that will introduce you to the basics. Once you feel comfortable with Python machine learning and the basics of natural language processing, this will be your go-to book for taking the next step.

See more here:
Practical NLP: The perfect guide for executives and machine learning practitioners - TechTalks

Related Posts
This entry was posted in $1$s. Bookmark the permalink.