Руководство по классификации текста

Задача MediaPipe Text Classifier позволяет классифицировать текст по набору определенных категорий, таких как положительные или отрицательные настроения. Категории определяются во время обучения модели. Эта задача оперирует текстовыми данными с моделью машинного обучения (ML) в виде статических данных и выводит список категорий и их оценки вероятности.

Попробуй это!

Начать

Начните использовать эту задачу, следуя одному из этих руководств по реализации для платформы, над которой вы работаете:

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

Подробности задачи

В этом разделе описаны возможности, входы, выходы и параметры конфигурации этой задачи.

Функции

  • Обработка входного текста . Поддержка токенизации вне графа для моделей без токенизации внутри графа.
  • Несколько головок классификации . Каждая головка может использовать свой собственный набор категорий.
  • Язык карты меток — установите язык, используемый для отображаемых имен.
  • Порог оценки — фильтрация результатов на основе оценок прогноза.
  • Результаты классификации Top-k — фильтрация количества результатов обнаружения.
  • Пометить список разрешенных и список запрещенных — укажите обнаруженные категории.
Входные данные задачи Результаты задачи
Классификатор текста принимает следующий тип входных данных:
  • Нить
Классификатор текста выводит список категорий, содержащий:
  • Индекс категории: индекс категории в выходных данных модели.
  • Оценка: оценка достоверности для этой категории, выраженная как вероятность от нуля до единицы в виде значения с плавающей запятой.
  • Имя категории (необязательно): имя категории, указанное в метаданных модели TensorFlow Lite, если они доступны.
  • Отображаемое имя категории (необязательно): отображаемое имя для категории, указанное в метаданных модели TensorFlow Lite, на языке, указанном в параметрах языкового стандарта отображаемых имен, если они доступны.

Варианты конфигурации

Эта задача имеет следующие параметры конфигурации:

Название опции Описание Диапазон значений Значение по умолчанию
displayNamesLocale Задает язык меток, которые будут использоваться для отображаемых имен, представленных в метаданных модели задачи, если они доступны. По умолчанию — en для английского языка. Вы можете добавить локализованные метки к метаданным пользовательской модели с помощью API записи метаданных TensorFlow Lite. Код региона ru
maxResults Устанавливает необязательное максимальное количество возвращаемых результатов классификации с наивысшим баллом. Если < 0, будут возвращены все доступные результаты. Любые положительные числа -1
scoreThreshold Устанавливает порог оценки прогноза, который переопределяет тот, который указан в метаданных модели (если таковые имеются). Результаты ниже этого значения отклоняются. Любой плавающий Не задано
categoryAllowlist Устанавливает необязательный список разрешенных имен категорий. Если поле не пусто, результаты классификации, имя категории которых отсутствует в этом наборе, будут отфильтрованы. Повторяющиеся или неизвестные названия категорий игнорируются. Эта опция является взаимоисключающей с categoryDenylist , и использование обеих приводит к ошибке. Любые строки Не задано
categoryDenylist Устанавливает необязательный список имен категорий, которые не разрешены. Если значение не пустое, результаты классификации, имя категории которых находится в этом наборе, будут отфильтрованы. Повторяющиеся или неизвестные названия категорий игнорируются. Этот параметр является взаимоисключающим с categoryAllowlist , и использование обоих приводит к ошибке. Любые строки Не задано

Модели

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

Предварительно обученные модели обучены анализу настроений и прогнозируют, является ли настроение входного текста положительным или отрицательным. Модели обучались на наборе данных SST-2 (Stanford Sentiment Treebank), который состоит из рецензий на фильмы, помеченных как положительные или отрицательные. Обратите внимание, что модели поддерживают только английский язык. Поскольку они обучались на наборе данных рецензий на фильмы, вы можете заметить снижение качества текста, охватывающего другие тематические области.

Эта модель использует архитектуру на основе BERT (в частности, модель MobileBERT ) и рекомендуется из-за ее высокой точности. Он содержит метаданные, которые позволяют задаче выполнять токенизацию BERT вне графа.

Название модели Введите форму Тип квантования Версии
BERT-классификатор [1x128],[1x128],[1x128] динамический диапазон Последний

Средняя модель встраивания слов

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

Название модели Введите форму Тип квантования Версии
Среднее встраивание слов 1 х 256 Нет (с плавающей запятой32) Последний

Тесты задач

Вот тесты задач для всего конвейера, основанные на предварительно обученных моделях, описанных выше. Результатом задержки является средняя задержка на Pixel 6 с использованием ЦП/ГП.

Название модели Задержка процессора Задержка графического процессора
Среднее встраивание слов 0,14 мс -
BERT-классификатор 57,68 мс -

Пользовательские модели

Для этой задачи вы можете использовать настроенную модель машинного обучения, если хотите улучшить или изменить возможности предоставленных моделей. Вы можете использовать Model Maker для изменения существующих моделей или создания модели с помощью таких инструментов, как TensorFlow. Пользовательские модели, используемые с MediaPipe, должны быть в формате TensorFlow Lite и включать определенные метаданные, описывающие рабочие параметры модели. Вам следует рассмотреть возможность использования Model Maker для изменения предоставленных моделей для этой задачи, прежде чем создавать свои собственные.