Что такое NLP
NLP (Natural Language Processing, обработка естественного языка) — область искусственного интеллекта, которая занимается взаимодействием между компьютерами и людьми на естественном языке: понимание, генерация, перевод, анализ текста.
История и эволюция NLP
Ранние этапы (1950–1980-е): правила
Системы программировались вручную по заранее заданным наборам правил и словарей. Классический пример — программа ELIZA (Джозеф Вейценбаум, 1966): она подбирала ответы по шаблонам, не понимая смысла. К этому же периоду относится тест Тьюринга — мысленный эксперимент о неотличимости машины от человека в диалоге.
Статистические методы (1990-е): n-граммы
Переход от жёстких правил к вероятностным моделям. Модель n-грамм разбивает текст на последовательности из n слов, считает частоты и предсказывает наиболее вероятное следующее слово.
# Идея n-граммной вероятности фразы (упрощённо)
P("I want to eat chinese food")
= P(want|I) · P(to|want) · P(eat|to) · P(chinese|eat) · P(food|chinese)
≈ 0.33 · 0.66 · 0.28 · 0.021 · 0.52 ≈ 0.00066
Применение: ранние системы перевода (IBM Watson), автозамена и подсказки. Ограничения: плохо работают с длинным контекстом, опираются только на локальные зависимости.
Эра глубокого обучения (2010-е — наст. время)
Рост вычислительных мощностей и больших данных позволил обучать нейросети: появились RNN и эмбеддинги слов (word2vec).
RNN — рекуррентные нейронные сети
RNN созданы для последовательных данных (текст, речь, временные ряды): обрабатывают слова по одному, передавая «память» от шага к шагу. Применение: анализ тональности, языковое моделирование, распознавание речи, генерация текста.
CNN — свёрточные нейронные сети
Изначально для изображений, адаптированы и для текста. CNN сканируют текст, выделяя локальные шаблоны (фразы вроде «невероятно интересным») и классифицируют (напр. тональность отзыва). Быстры, хороши для коротких текстов, но плохо учитывают долгосрочный контекст.
Архитектура трансформеров
Трансформеры (2017) — прорыв в NLP. Главное отличие от RNN: текст обрабатывается параллельно, а не по одному слову.
Механизм внимания (attention)
Ключевая идея: модель фокусируется на самых важных частях текста и игнорирует менее значимые.
Почему это важно: внимание анализирует весь текст сразу (а не по частям, как RNN) и учитывает контекст на любом расстоянии.
Позиционные эмбеддинги
Так как трансформер обрабатывает слова параллельно, он «не видит» их порядок напрямую. Позиционные эмбеддинги — числовые метки, добавляемые к каждому слову, чтобы указать его позицию.
Предложение: "Кот любит рыбу."
"Кот" → эмбеддинг + позиция 1
"любит"→ эмбеддинг + позиция 2
"рыбу" → эмбеддинг + позиция 3
Сравнение: RNN / CNN / Трансформеры
| Характеристика | RNN | CNN | Трансформеры |
|---|---|---|---|
| Контекст | Последовательно, теряют дальние связи | Локальные шаблоны | Весь контекст сразу, связи на любом расстоянии |
| Скорость | Медленные (по слову) | Быстрее RNN | Очень быстрые (полный параллелизм) |
| Длинные тексты | Теряют информацию | Неэффективны | Отлично справляются |
| Применение | Генерация, анализ последовательностей | Классификация, тональность | Перевод, генерация, извлечение информации |
Ключевые модели
- BERT — для анализа текста (понимание), извлечения ключевых слов.
- GPT — для генерации текста, написания кода, диалога (ChatGPT в поддержке клиентов).