| | |  | Software Engineering | Home » » » Natural Language Processing with Python | | | | | | | Product Promotions: | | | | | Description: | | This book offers a highly accessible introduction to natural language processing, the field that supports a variety of language technologies, from predictive text and email filtering to automatic summarization and translation. With it, you'll learn how to write Python programs that work with large collections of unstructured text. You'll access richly annotated datasets using a comprehensive range of linguistic data structures, and you'll understand the main algorithms for analyzing the content and structure of written communication.
Packed with examples and exercises, Natural Language Processing with Python will help you:
- Extract information from unstructured text, either to guess the topic or identify "named entities"
- Analyze linguistic structure in text, including parsing and semantic analysis
- Access popular linguistic databases, including WordNet and treebanks
- Integrate techniques drawn from fields as diverse as linguistics and artificial intelligence
This book will help you gain practical skills in natural language processing using the Python programming language and the Natural Language Toolkit (NLTK) open source library. If you're interested in developing web applications, analyzing multilingual news sources, or documenting endangered languages -- or if you're simply curious to have a programmer's perspective on how human language works -- you'll find Natural Language Processing with Python both fascinating and immensely useful.
| | | Product Details: | | | Author:
| Steven Bird | | Paperback:
| 504 pages | | Publisher:
| O'Reilly Media | | Publication Date:
| July 07, 2009 | | Language:
| English | | ISBN:
| 0596516495 | | Product Length:
| 9.2 inches | | Product Width:
| 6.9 inches | | Product Height:
| 1.2 inches | | Product Weight:
| 1.75 pounds | | Package Length:
| 9.2 inches | | Package Width:
| 7.0 inches | | Package Height:
| 1.2 inches | | Package Weight:
| 1.5 pounds | | Average Customer Rating:
| based on 14 reviews |
| | | | Customer Reviews: | |
Average Customer Review:
( 14 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
73 of 79 found the following review helpful:
Heavy on code, somewhat light on theoryJul 19, 2009
By calvinnme 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
28 of 28 found the following review helpful:
Good book, great librarySep 21, 2009
By Peter Alfheim Buy this book only if you: 1. Know the basics of natural language processing (NLP) or linguistics; 2. Know the Python programming language or you're willing to learn it; 3. Are using the NLTK library or plan to do so.
NLTK is a Python library that offers many standard NLP tools (tokenizers, POS taggers, parsers, chunkers and others). It comes with samples of several dozens of text corpora typically used in NLP applications, as well as with interfaces to dictionary-like resources such as WordNet and VerbNet. No FrameNet, though. NLTK is well documented, so you might not need this book initially. However, it definitely helps to have it on your desk if you are serious about using NLTK.
The first chapters are a bit messy, as they attempt to introduce all three themes (NLP, NLTK and Python) together. Beginners may have some difficulty sorting things out. By the time you reach the WordNet section, you either got lost in the forest, realize that you would never understand this topic without the book, or both. However, if you are a bit patient and try out all simple code examples, you'll make it eventually. In my opinion, NLTK remains the simplest, most elegant and well rounded library of its kind.
16 of 17 found the following review helpful:
Excellent intro to NLPJul 18, 2009
By P. H. Adams
"phadams"
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.
9 of 9 found the following review helpful:
Suitable for NLP people interested in learning Python and NLTKAug 28, 2009
By Eli Bendersky 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.
9 of 10 found the following review helpful:
A good overviewSep 12, 2009
By Aaron Mcbride I've only made it through the first half of the book, but here's what I think so far. It's a good book with a lot of overview information on the types of thinks that can be done with NLP today. I've certainly learned a lot. What I was disappointed by was the lack of description of the inner workings of many of the algorithms. They just give you a library and expect you to treat it as a black box. If you don't want to use their library, you have a long ways to go for real understanding.
See all 14 customer reviews on Amazon.com
| | |
|