Natural Language Processing with Python

Natural Language Processing with Python
Steven Bird, Ewan Klein, Edward Loper
30 Jun 2009
Purchase online

This book offers a highly accessible introduction to Natural Language Processing, the field that underpins a variety of language technologies, ranging from predictive text and email filtering to automatic summarization and translation. With Natural Language Processing with Python, you'll learn how to write Python programs to work with large collections of unstructured text. You'll access richly-annotated datasets using a comprehensive range of linguistic data structures.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

Eli Bendersky said
There are three kinds of people who might think this book could be useful:

1. Natural language processing (NLP) researchers and students who want a learn a solid programming tool to help them with their work.
2. Python programmers who want to find out more about NLP.
3. Newbies in both Python and NLP who just think the topic sounds cool and those whales on the cover are kinda cute.

In my opinion, the only kind that will find this book suitable and useful is (1). If you're familiar with Python and know no NLP it won't help you much, because it doesn't really teach NLP. It shows a few domains of this vast field, with nice code examples and all, but you should probably start with some introductory textbook on the subject or a course. You won't really learn NLP here.

The book's focus is mostly on the NLTK library written in Python by the authors. This library implements many NLP algorithms and comes with lots of data for testing and training. Almost no algorithms are implemented in the book - some are explained, and the code always imports the required modules from NLTK and shows their usage. The Python code is well-written and clean.

To conclude, if you're a NLP researcher or student, this is a very good book to read. Especially if you plan to start working with NLTK (which seems like a mature and powerful tool) - this book will serve as a great introduction. If you have other interests, this is probably not the right book.

Udi Bauman said
If you have any need for Natural Language Processing - this book is the one you must read. I've bought & read the famous textbooks on the subject, but these give you just the theory & math. This book however gives you the practical know-how in order to get you started & running, in no time. It does this by using the programming language of choice for this domain (Python) & the framework of choice for doing the actual work (NLTK), which the authors have developed.
Really fun to read & very very useful, for programmers as well as anyone wishing to process texts automatically. Good also for non-programmers, as it gently introduces the programming idioms required to get the work done, & does it really well!

calvinnme said
This book really delivers when it comes to code. It starts with simple tasks using the Python NLTK (Natural Language Toolkit) and builds up from there, teaching you a little bit of Python, a little bit of NLP theory, and delivering much in the way of useful applications. The author takes the time to explain the code and what is going on behind the scenes. He starts with extracting explicit words from documents and builds on that until at the end of the book you are analyzing sentence structure and building feature-based grammars.

This is not, however, an introduction to either the mathematics or information theory of natural language processing. It is not even a tutorial on Python. The book's sole purpose is to help you solve real problems using a common language without necessarily understanding the theory or the language you are using. If you really want to understand Python I suggest Learning Python. It's not as interestng as this book, but it gets the job done. To understand the theory behind natural language processing and also see how algorithms are coded up I suggest An Introduction to Language Processing with Perl and Prolog: An Outline of Theories, Implementation, and Application with Special Consideration of English, French, and German (Cognitive Technologies).

As for this book, I think it makes a great supplement to the other books I mention and also as a recipe book of solutions to real-world problems. I really don't think it is a gentle introduction to Speech and Language Processing (2nd Edition) (Prentice Hall Series in Artificial Intelligence), as it claims to be in the preface. Currently the table of contents is not listed in the product description. I include that next for your convenience:

Chapter 1. Language Processing and Python
Section 1.1. Computing with Language: Texts and Words
Section 1.2. A Closer Look at Python: Texts as Lists of Words
Section 1.3. Computing with Language: Simple Statistics
Section 1.4. Back to Python: Making Decisions and Taking Control
Section 1.5. Automatic Natural Language Understanding
Section 1.6. Summary
Section 1.7. Further Reading
Section 1.8. Exercises
Chapter 2. Accessing Text Corpora and Lexical Resources
Section 2.1. Accessing Text Corpora
Section 2.2. Conditional Frequency Distributions
Section 2.3. More Python: Reusing Code
Section 2.4. Lexical Resources
Section 2.5. WordNet
Section 2.6. Summary
Section 2.7. Further Reading
Section 2.8. Exercises
Chapter 3. Processing Raw Text
Section 3.1. Accessing Text from the Web and from Disk
Section 3.2. Strings: Text Processing at the Lowest Level
Section 3.3. Text Processing with Unicode
Section 3.4. Regular Expressions for Detecting Word Patterns
Section 3.5. Useful Applications of Regular Expressions
Section 3.6. Normalizing Text
Section 3.7. Regular Expressions for Tokenizing Text
Section 3.8. Segmentation
Section 3.9. Formatting: From Lists to Strings
Section 3.10. Summary
Section 3.11. Further Reading
Section 3.12. Exercises
Chapter 4. Writing Structured Programs
Section 4.1. Back to the Basics
Section 4.2. Sequences
Section 4.3. Questions of Style
Section 4.4. Functions: The Foundation of Structured Programming
Section 4.5. Doing More with Functions
Section 4.6. Program Development
Section 4.7. Algorithm Design
Section 4.8. A Sample of Python Libraries
Section 4.9. Summary
Section 4.10. Further Reading
Section 4.11. Exercises
Chapter 5. Categorizing and Tagging Words
Section 5.1. Using a Tagger
Section 5.2. Tagged Corpora
Section 5.3. Mapping Words to Properties Using Python Dictionaries
Section 5.4. Automatic Tagging
Section 5.5. N-Gram Tagging
Section 5.6. Transformation-Based Tagging
Section 5.7. How to Determine the Category of a Word
Section 5.8. Summary
Section 5.9. Further Reading
Section 5.10. Exercises
Chapter 6. Learning to Classify Text
Section 6.1. Supervised Classification
Section 6.2. Further Examples of Supervised Classification
Section 6.3. Evaluation
Section 6.4. Decision Trees
Section 6.5. Naive Bayes Classifiers
Section 6.6. Maximum Entropy Classifiers
Section 6.7. Modeling Linguistic Patterns
Section 6.8. Summary
Section 6.9. Further Reading
Section 6.10. Exercises
Chapter 7. Extracting Information from Text
Section 7.1. Information Extraction
Section 7.2. Chunking
Section 7.3. Developing and Evaluating Chunkers
Section 7.4. Recursion in Linguistic Structure
Section 7.5. Named Entity Recognition
Section 7.6. Relation Extraction
Section 7.7. Summary
Section 7.8. Further Reading
Section 7.9. Exercises
Chapter 8. Analyzing Sentence Structure
Section 8.1. Some Grammatical Dilemmas
Section 8.2. What's the Use of Syntax?
Section 8.3. Context-Free Grammar
Section 8.4. Parsing with Context-Free Grammar
Section 8.5. Dependencies and Dependency Grammar
Section 8.6. Grammar Development
Section 8.7. Summary
Section 8.8. Further Reading
Section 8.9. Exercises
Chapter 9. Building Feature-Based Grammars
Section 9.1. Grammatical Features
Section 9.2. Processing Feature Structures
Section 9.3. Extending a Feature-Based Grammar
Section 9.4. Summary
Section 9.5. Further Reading
Section 9.6. Exercises
Chapter 10. Analyzing the Meaning of Sentences
Section 10.1. Natural Language Understanding
Section 10.2. Propositional Logic
Section 10.3. First-Order Logic
Section 10.4. The Semantics of English Sentences
Section 10.5. Discourse Semantics
Section 10.6. Summary
Section 10.7. Further Reading
Section 10.8. Exercises
Chapter 11. Managing Linguistic Data
Section 11.1. Corpus Structure: A Case Study
Section 11.2. The Life Cycle of a Corpus
Section 11.3. Acquiring Data
Section 11.4. Working with XML
Section 11.5. Working with Toolbox Data
Section 11.6. Describing Language Resources Using OLAC Metadata
Section 11.7. Summary
Section 11.8. Further Reading
Section 11.9. Exercises

P. H. Adams said
Excellent introduction to the field of Natural Language Processing. I've been using the Natural Language Toolkit, the Python library explained in this book, for about two years and have seen it continually improve and become more robust. I eagerly awaited this text, which I first learned about over a year ago, and I must say the wait was worth it. Although most useful for those with a background in computer science or linguistics, it's a fairly gentle introduction to the field, so anyone with interest in the subject should find it useful and easy to understand. Stephen, Ewan, and Edward have done an excellent job of explaining language technologies and associated algorithmic functions for analyzing text.

You might also like...



Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“There's no test like production” - Anon