Токенизация текста
Введение в токенизацию
При компьютерной обработке естественного языка сырой текст невозможно напрямую подать в математическую модель. Текст необходимо предварительно токенизировать — разбить на последовательность минимальных смысловых единиц, которые называются токенами (tokens). Этот процесс можно выразить следующей записью:
где — это отдельный токен, а — общее число токенов в последовательности.
Однако нейросети не умеют работать с символьными строками. Поэтому каждый полученный токен заменяется на соответствующий ему эмбеддинг (embedding) — вектор вещественных чисел фиксированной размерности :
После этого последовательность векторов-эмбеддингов передаётся на вход прогнозирующей модели , которая осуществляет целевое предсказание , такое как класс текста, следующий токен и т.д.:
Откуда берутся значения вектора эмбеддингов для каждого токена?
Существует три основных подхода к формированию векторных представлений токенов:
- Фиксированное one-hot кодирование: вектор состоит из нулей и одной единицы на позиции, соответствующей индексу токена в словаре. Получаемая размерность вектора будет совпадать с числом уникальных кодируемых сущностей, поэтому он применим лишь для токенизации текста на уровне символов, число которых невелико. Отметим также, что векторы получаются ортогональными и не несут информации о семантической близости кодируемых сущностей.
- Настраиваемые вместе с параметрами модели: векторы инициализируются случайным образом и обучаются совместно с весами самой сети под конкретную задачу.
- Предобученные (Transfer Learning): векторы берутся из уже обученных на огромных корпусах текстов моделей (например, Word2Vec, GloVe или извлекаются из скрытых слоев современных LLM). Это позволяет сразу наделить модель знаниями о семантике слов.
Простейшие виды токенизации
Исторически первыми и самыми интуитивными способами разделения текста были пословная и посимвольная токенизация.
Пословная токенизация (Word-level)
При данном подходе текст разбивается строго на слова и знаки препинания.
Пример разбиения:
Playing games.[Playing][games][.]
Преимущества:
- Компактное представление текста: последовательность получается короткой.
- Быстрая обработка: меньше токенов означает меньшее количество вычислений при проходе через модель.
- Улучшенное понимание контекста: моделям легче устанавливать смысловые зависимости между словами, а ширина доступного контекста (измеряемая в токенах) охватывает больше реального текста.
Недостатки:
-
Проблема новых слов (Out-Of-Vocabulary, OOV): если модель при обучении не видела новое слово, она не будет знать, какой вектор ему сопоставить.
Эта проблема стоит особенно остро для морфологически богатых языков (таких, как русского и турецкого), где у одного слова могут быть десятки словоформ.