Слова, морфемы и токены
Токенизация — первый шаг обработки языка, на котором текст разбивают на единицы-токены.
Зачем это нужно
Слова плохо подходят на роль единицы обработки. В части языков орфографических слов нет вообще: в китайском, японском и тайском текст не разделяют пробелами. Кроме того, число разных слов растёт с размером корпуса без предела, поэтому незнакомые слова неизбежны.
Как это работает
В тексте различают два понятия. Типы (word types) — уникальные слова, их число равно размеру словаря |V|. Экземпляры (word instances) — все слова подряд, их число равно N. В предложении «They picnicked by the pool, then lay back on the grass and looked at the stars» без пунктуации 16 экземпляров и 14 типов: слово the встречается три раза.
Рост словаря описывает закон Хипса (он же закон Хердана): |V| = kN^β, где 0 < β < 1; обычно β от 0,44 до 0,56.
Более мелкие единицы — морфемы, минимальные значимые части слова. Слово cats состоит из морфем cat и -s. Но выделять морфемы единообразно во всех языках трудно, поэтому на практике берут подтокены — единицы меньше слова.
Пример
Число слов в языке не имеет чёткого ответа: чем больше корпус, тем больше типов в нём находят.
Что запомнить
- Токен — единица, на которую алгоритм разбивает текст; слово и токен не одно и то же.
- Типы не равны экземплярам; словарь растёт по закону Хипса, поэтому незнакомые слова неизбежны.
- Современные токенизаторы берут подтокены; распространены BPE (byte pair encoding, «попарное слияние байтов») и unigram language modeling.
Где читать дальше
- Jurafsky & Martin, SLP3, гл. 2, разделы 2.1–2.3