Product Description [Via Amazon]
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. 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, 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
Perfect for individual study, or as a classroom and workshop textbook, 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, documenting endangered languages, or if you are simply curious to have a programmer’s perspective on how human language works, you will find Natural Language Processing with Python both fascinating and immensely useful.
————————–
Table of Contents
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
