Учебник NLP для начинающих
Обработка естественного языка (NLP) — это область на стыке лингвистики и машинного обучения, которая учит компьютеры читать, понимать и порождать текст. Этот курс ведёт от классики к современности: вы разберёте, почему язык так труден для машин, научитесь превращать текст в числа (bag-of-words, TF-IDF, косинусная близость), построите классификатор тональности на наивном байесе, поймёте, как из счётчиков слов вырос word2vec и распределённые эмбеддинги, и дойдёте до механизма внимания и архитектуры трансформера, на которой стоят BERT и GPT. Математики ровно столько, сколько нужно для понимания, и максимум практики: ключевые идеи — токенизацию, TF-IDF, косинус, байес и веса внимания — вы посчитаете руками прямо в браузере на чистом Python. Нужны базовый Python и общее представление о машинном обучении.
Курс «NLP: обработка естественного языка» состоит из 6 разделов и 24 уроков: Введение и предобработка, Текст как числа (классика), Классические задачи и модели, Эмбеддинги слов, Нейросети для текста и внимание и Трансформеры и современный NLP. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Введение и предобработка
- Что такое NLP и какие задачи оно решает
Обзор NLP: классификация, перевод, NER, вопросно-ответные системы и генерация текста. Что общего у этих задач и зачем учить машины работать с языком.
- Почему язык труден для машин
Неоднозначность, контекст, омонимы, идиомы и редкие слова: разбираем, почему естественный язык сложнее формальных языков и где спотыкаются простые подходы.
- Токенизация: слова, символы и подслова (BPE)
Как разбить текст на токены: по словам, по символам и по подсловам (идея BPE). Запускаемые примеры токенизации на чистом Python и компромиссы каждого подхода.
- Нормализация: регистр, пунктуация, стоп-слова, стемминг
Приведение текста к единому виду: нижний регистр, удаление пунктуации и стоп-слов, стемминг и лемматизация. Запускаемые примеры и когда что применять.
- Что такое NLP и какие задачи оно решает
2 Текст как числа (классика)
- Bag-of-words: текст как мешок слов
Модель «мешок слов»: превращаем документы в векторы частот через Counter. Запускаемый пример, идея словаря и почему теряется порядок слов.
- Проблема частых слов и формула TF-IDF
Почему частые слова мешают, и как TF-IDF взвешивает термины: разбор формулы TF и IDF с запускаемым расчётом весов вручную на маленьком корпусе.
- N-граммы: возвращаем порядок слов
N-граммы как способ частично учесть порядок слов и контекст в bag-of-words. Запускаемое построение биграмм и триграмм и компромисс размерности.
- Косинусная близость: насколько похожи два текста
Как измерить похожесть документов-векторов через косинус угла между ними. Запускаемый расчёт косинусной близости вручную на bag-of-words векторах.
- Bag-of-words: текст как мешок слов
3 Классические задачи и модели
- Классификация текста: наивный байес на практике
Как работает наивный байесовский классификатор для текста. Запускаемый спам-фильтр на маленьком корпусе: считаем вероятности слов руками.
- Метрики качества: precision, recall и F1
Как измерять качество текстового классификатора: accuracy обманчива, нужны precision, recall и F1. Запускаемый расчёт метрик по матрице ошибок.
- Языковые модели на n-граммах
Что такое языковая модель и как n-граммы предсказывают следующее слово. Запускаемая биграммная модель: вероятности и генерация текста.
- Пределы классики: почему счётчиков слов мало
Где упираются bag-of-words, TF-IDF и n-граммы: нет смысла слов, разрежённость, слабый контекст. Мотивация перехода к эмбеддингам и нейросетям.
- Классификация текста: наивный байес на практике
4 Эмбеддинги слов
- Распределённые представления: слово — это его контекст
Идея эмбеддингов: смысл слова задаётся его окружением. Дистрибутивная гипотеза, плотные векторы и переход от индексов к осмысленной геометрии.
- Word2vec: как обучают эмбеддинги (skip-gram и CBOW)
Идея word2vec: предсказывать слово по контексту или контекст по слову. Архитектуры skip-gram и CBOW, обучающие пары и что в итоге получается.
- Арифметика слов и похожесть на векторах
Знаменитое king − man + woman ≈ queen и поиск похожих слов. Запускаемый расчёт косинусной близости на игрушечных эмбеддингах.
- Пределы статичных эмбеддингов: проблема омонимов
Почему один вектор на слово — это мало: омонимы вроде «ключ» и «лук» получают усреднённый вектор. Мотивация контекстных эмбеддингов.
- Распределённые представления: слово — это его контекст
5 Нейросети для текста и внимание
- RNN и LSTM: нейросети с памятью
Как рекуррентные сети читают текст по словам, сохраняя память о прошлом. Идея скрытого состояния, проблема длинных зависимостей и зачем нужен LSTM.
- Seq2seq и машинный перевод: энкодер и декодер
Архитектура «последовательность в последовательность»: энкодер сжимает входное предложение, декодер порождает выход. Идея и узкое место context-вектора.
- Механизм внимания: на что смотреть
Идея attention: вместо одного вектора смысла декодер взвешенно смотрит на все слова входа. Запускаемый расчёт весов внимания softmax на маленьком примере.
- RNN и LSTM: нейросети с памятью
6 Трансформеры и современный NLP
- Архитектура трансформера и self-attention
Почему трансформер вытеснил RNN: self-attention, параллельность и позиционное кодирование. Идея «каждое слово смотрит на все слова» наглядно.
- BERT: контекстные эмбеддинги и двунаправленность
Как BERT даёт слову вектор с учётом контекста и почему читает предложение в обе стороны. Маскированное предобучение и решение проблемы омонимов.
- GPT и генеративные модели
Как GPT порождает текст, предсказывая следующий токен. Декодерный трансформер, авторегрессия и связь с n-граммными моделями из начала курса.
- Предобучение, дообучение и экосистема
Парадигма «предобучение → дообучение» и перенос знаний. Что такое fine-tuning, обзор Hugging Face и почему это изменило практику NLP.
- Применения, этика и что дальше
Где NLP меняет мир, какие у него риски (предвзятость, галлюцинации, приватность) и куда двигаться дальше — мост к курсу про большие языковые модели.
- Архитектура трансформера и self-attention