Токенизация текстов - как и зачем?

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


При решении задач обработки естественного языка (NLP) одним из важнейших этапов является токенизация - разделение текста на отдельные части (токены). Часто в качестве единицы разбиения выбирают слово, однако это не единственный и, главное, не всегда удачный вариант.

Какая токенизация бывает?

Можно выделить следующие уровни абстракции текста и, соответственно, токенизации:

Символы - отдельные знаки

Символьные N-граммы - комбинации из двух, трех или более символов, идущих подряд.

Подслова - одним из популярных способов разделения текстов на подслова является BPE (Byte Pair Encoding). В данном методе производится итеративный подсчет частоты токенов, начиная с отдельных символов, самых частотные из которых объединяются в подслова. Подобный способ токенизации сегодня можно встретить в таких моделях как BERT, GPT-2 и многие другие.

Слова - простой и понятный метод разделения текстов по пробелу.

Словосочетания - как и в случае символов и символьных N-грамм, аналогичным образом можно токенизировать тексты, используя комбинации нескольких слов, идущих подряд.

Предложения - завершая иерархию абстракций, можно упомянуть сегментацию предложений. Решая подобную задачу мы разбиваем исходные данные на отдельные предложения.

Как выбрать уровень токенизации?

Для выбора подходящего способа токенизации стоит отталкиваться от формулировки задачи, богатства морфологии языка, на котором написаны тексты, и их особенностей, например, таких, как наличие большого количества опечаток.

Какими инструментами можно провести токенизацию?

Простейшие методы, например, такие как разбиение по пробелу, можно реализовать самостоятельно, пользуясь встроенными методами языка Python или регулярными выражениями.

Однако на сегодняшний день существует огромное количество библиотек для токенизации:

NLTK

Spacy

Stanza

SentencePiece

YouTokenToMe (очень эффективная реализация BPE).

Отдельно можно выделить Razdel - библиотека из проекта Natasha, предназначенная для токенизации текстов на русском языке.


Источник: vk.com

Комментарии: