Skip to content

Natural Language Processing

A Notebook-Based Introduction

Version 0.1 — a living, ever-evolving edition

This is an early release (v0.1) of a living resource that grows and evolves alongside the field. Chapters, structure, and content are continually expanded and updated — see the Roadmap.

An open educational resource for learning modern NLP by reading, running, and modifying real code — from tokenization and word vectors to transformers, fine-tuning, and LLM agents. Every chapter is an interactive Jupyter notebook you can run in your browser.

Start reading Read the Preface

Open & free

This book was developed with support from the OU Alternative Textbook Grant 2025–2026 and is released under a CC BY-NC-SA 4.0 license — free to use, share, and adapt for non-commercial purposes.

Why this book

  • Code-first. You don't just read about NLP — you run it, break it, and rebuild it.
  • Zero setup. One click opens any chapter in Google Colab; no install required.
  • Self-paced. Designed for independent study as well as classroom use.
  • Modern. Covers the path from classical methods to transformers, LLM fine-tuning, and agents.

Start here

  1. Read the Preface — what this book is and how to use it.
  2. Open the Table of Contents and begin with Chapter 1.
  3. Check the Roadmap to see what's coming.

For CS-5293 students

This book is the textbook for CS-5293 Natural Language Processing at the University of Oklahoma. Course logistics:

  • Lectures: Tue/Thu, 1:30 PM – 2:45 PM · Location: Sarkeys Energy Center A0236
  • Instructor: Prof. Jie Cao · Email: jie.cao@ou.edu
  • Discussion: Canvas + Discord

Course pages: Syllabus · Schedule · Assignments · Final Project · Resources