Natural Language Processing with Python Steven Bird, Ewan Klein, and Edward Loper (University of Melbourne, University of Edinburgh, and BBN Technologies) Sebastopol, CA: O'Reilly Media, 2009, xx+482 pp; paperbound, ISBN 978-0-596-51649-9, $44.99; on-line free of charge at nltk.org/book

Michael Elhadad · Computational Linguistics · 2010

This book comes with "batteries included" (a reference to the phrase often used to explain the popularity of the Python programming language).It is the companion book to an impressive open-source software library called the Natural Language Toolkit (NLTK), written in Python.NLTK combines language processing tools (tokenizers, stemmers, taggers, syntactic parsers, semantic analyzers) and standard data sets (corpora and tools to access the corpora in an efficient and uniform manner).Although the book builds on the NLTK library, it covers only a relatively small part of what can be done with it.The combination of the book with NLTK, a growing system of carefully designed, maintained, and documented code libraries, is an extraordinary resource that will dramatically influence the way computational linguistics is taught.The book attempts to cater to a large audience: It is a textbook on computational linguistics for science and engineering students; it also serves as practical documentation for the NLTK library, and it finally attempts to provide an introduction to programming and algorithm design for humanities students.I have used the book and its earlier on-line versions to teach advanced undergraduate and graduate students in computer science in the past eight years.The book adopts the following approach: r It is first a practical approach to computational linguistics.It provides readers with practical skills to solve concrete tasks related to language.r It is a hands-on programming text: The ultimate goal of the book is to empower students to write programs that manipulate textual data and perform empirical experiments on large corpora.Importantly, NLTK includes a large set of corpora-this is one of the most useful and game-changing contributions of the toolkit.r It is principled: It exposes the theoretical underpinnings-both computational and linguistic-of the algorithms and techniques that are introduced.r It attempts to strike a pragmatic balance between theory and applications.The goal is to introduce "just enough theory" to fit in a single semester course for advanced undergraduates, while still leaving room for practical programming and experimentation.r It aims to make working with language pleasurable.

Read the paper · More papers on PaperTik