NLP
Natural Language Processing — обработка естественного языка: методы, которые учат машину извлекать смысл из текста и порождать его.
Что такое NLP
NLP (Natural Language Processing, обработка естественного языка) — направление на стыке лингвистики и машинного обучения, которое учит компьютер работать с человеческим языком: разбирать текст, извлекать из него смысл, классифицировать, переводить и генерировать новый. Всё, что человек формулирует словами и хочет обработать автоматически, попадает в NLP.
Сложность языка в неоднозначности. «Ключ» — от двери, гаечный или в скрипте? Правильный ответ виден только из контекста, поэтому NLP-модели работают не с отдельными словами, а с последовательностями — и чем длиннее контекст они удерживают, тем лучше справляются.
Не путать. В русскоязычном интернете аббревиатурой НЛП называют ещё и «нейролингвистическое программирование» — методику из поп-психологии, не имеющую научного статуса и никак не связанную с IT. Здесь речь только о компьютерной обработке языка.
Задачи NLP
| Задача | Что делает | Где встречается |
|---|---|---|
| Классификация текста | Относит текст к категории | Спам-фильтр, тональность отзывов |
| NER | Находит имена, даты, компании, суммы | Разбор договоров, резюме |
| Machine translation | Переводит между языками | Переводчики |
| Question answering | Отвечает на вопрос по документу | Поддержка, базы знаний |
| Суммаризация | Сжимает текст до главного | Пересказ созвонов, новостей |
| Генерация | Пишет новый текст | Чат-боты, ассистенты |
| Поиск по смыслу | Ищет по значению, а не по словам | AI-поиск |
Речевые задачи (ASR, TTS) обычно выделяют в отдельную область, но их выход и вход — текст, поэтому на практике они стыкуются с NLP в одном пайплайне.
Как NLP пришёл к нынешнему виду
- Правила (до 1990-х): словари и написанные вручную грамматики. Точно, но не масштабируется — каждое исключение приходится дописывать руками.
- Статистика (1990-е): n-граммы, скрытые марковские модели. Модель считает вероятности по корпусу, а не следует правилам.
- Эмбеддинги (2013, word2vec): слова стали векторами, у которых есть геометрия смысла. Появилось понятие «похожие по значению» — см. эмбеддинг.
- Трансформер (2017): механизм attention позволил учитывать весь контекст сразу и обучаться параллельно на GPU.
- LLM (с 2018): одна большая модель вместо отдельной модели под каждую задачу. Сегодня классификацию, перевод и суммаризацию чаще решают промптом, а не обучением с нуля.
Предобработка текста
Классический NLP-пайплайн начинался с тяжёлой лингвистической обработки. Современный — заметно короче:
Классический Современный (LLM)
───────────── ─────────────────
Очистка, нижний регистр Текст как есть
↓ ↓
Токенизация по словам Токенизация (BPE)
↓ ↓
Удаление стоп-слов │
↓ │
Лемматизация / стемминг │
↓ ↓
Векторизация (TF-IDF) Эмбеддинги + модель
Лемматизация и стоп-слова всё ещё нужны для полнотекстового поиска и классических моделей, но нейросетевым моделям они скорее вредят: токенизатор уже разбивает слово на части, а падеж и род несут смысл, который не стоит выбрасывать.
Инструменты и русский язык
- Hugging Face Transformers — доступ к готовым моделям и Hub
- spaCy, NLTK, Stanza — классический пайплайн: токенизация, разбор, NER
- Natasha, pymorphy — морфология русского языка, лемматизация с учётом падежей
- sentence-transformers — эмбеддинги предложений для поиска и кластеризации
Русский сложнее английского для NLP: богатая морфология, свободный порядок слов и в 2–3 раза больше токенов на тот же текст — из-за чего быстрее расходуется контекстное окно и растёт стоимость запроса.
GPU для NLP
Инференс небольшой encoder-модели (классификация, NER, эмбеддинги) укладывается в несколько ГБ VRAM и работает даже на CPU. Генеративные задачи упираются в размер LLM: 7–8B в 4-битной квантизации запускаются на одной RTX 4090, модели на 70B требуют уже нескольких карт.
Связанные термины
- LLM — универсальный инструмент современного NLP
- трансформер — архитектура, изменившая область
- эмбеддинг — представление смысла вектором
- токенизация — первый шаг обработки текста
- AI-поиск — поиск по смыслу как прикладная задача NLP
- ASR — распознавание речи, вход для текстовых задач
Готовы запустить GPU-задачу?
Запустить GPU-сервер