Friday, January 14, 2011
Book Review - Natural Language Processing with Python
Natural Language Processing with Python, By Steven Bird, Ewan Klein, Edward Loper, introduces the Pythonista to the field of NLP, the language processing enthusiast to Python, and everyone else to both. In this book, the reader is introduced to both Python and some language processing by page five. Rather than teaching Python first and then Natural Language Processing, this book alternates between the two, showing live examples in Python code when a language processing concept is mentioned. When programming concepts are needed or useful, they are explained - usually in the context of "How can this help me better process text?".
After a solid introduction to Python and some language analysis tools, the reader is taught how to load corpa (large collections of text, if you're new to NLP like I am) - both those provided by the NLTK (Natural Language Tool Kit) team, as well as the users own corpa. Then the next few chapters alternate between Python and language processing. The reader will by no means finish with a complete understanding of computer science, but they will be equipped with most of the knowledge of programming that they will need to do most language processing tasks with Python and the NLTK.
I was fairly impressed with this book - I originally saw it at the most recent Python Arkansas conference as a door prize and it looked interesting to me. Someone else was the lucky winner, however, so when I had the chance to review this book I jumped at the opportunity. This book was very well written, in a style that had just the right mix of code samples to try out, conceptual information, and challenging exercises. That's probably why it has "been adopted in courses in dozens of universities" (p xiv). As they explain in the introduction, this book is not a reference book for either Python or Natural Language Processing. If you want more in-depth coverage of either of those you're probably best off looking elsewhere. However, if you know Python and want a great introduction to language processing, or if you know some language processing and are interested to see what Python has to offer you, this book is a must-buy.