Обработка естественного языка быстро становится одним из наиболее часто используемых инструментов искусственного интеллекта в различных отраслях. В области обработки естественного языка (NLP) существует большое количество разнообразных задач, которые обслуживают множество вариантов использования. Разделение текста на группы - одна из самых популярных задач НЛП.

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

IBM's Natural Language Understanding (NLU) предоставляет множество возможностей НЛП для анализа текста на многих разных языках.

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

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

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

Создание модели классификации с помощью NLU

  • Подготовьте экземпляр NLU, посетив IBM Cloud Catalog, или используйте существующий экземпляр NLU.
  • Скопируйте учетные данные, созданные после подготовки, и храните их в безопасном месте.
  • В демонстрационных целях мы будем использовать набор данных о спаме, доступный здесь. Загрузите SpamHam-Train.csv файл.
  • Для обучения модели классификаций с помощью NLU мы будем использовать инструмент командной строки curl.
  • Откройте новое окно терминала и перейдите в папку, содержащую загруженный выше набор данных.
  • Используя загруженный выше набор данных, создайте модель классификации с помощью следующей команды:
  • Вышеупомянутый запрос curl вернет ответ JSON, который будет содержать поле с именем model_id. Мы будем использовать это model_id для обозначения этой модели позже.
  • Давайте проверим статус обучения нашей модели с помощью следующей команды curl:
  • Приведенная выше команда curl вернет ответ, который покажет нам статус обучения нашей модели (обратите внимание на поле «status» в следующем ответе).
{
  "name": "Spam-Ham Classification",
  "user_metadata": null,
  "language": "en",
  "description": "Demo spam detection model",
  "model_version": "1.0.1",
  "version": "1.0.1",
  "workspace_id": null,
  "version_description": null,
  "status": "training",
  "notices": [],
  "model_id": "<CLASSIFICATIONS-MODEL-ID>",
  "features": [
    "classifications"
  ],
  "created": "2021-07-23T06:35:55Z",
  "last_trained": "2021-07-23T06:35:55Z",
  "last_deployed": null
}

Значение status = training показывает, что наша модель в настоящее время обучается. По окончании обучения модель автоматически развернется в NLU, и ее статус изменится на available, как только она будет готова к использованию.

Совет. Обучение классификатора может занять некоторое время. Между тем, вы можете больше узнать о классификациях (или других возможностях NLU) в документации или почитать эту замечательную записную книжку, объясняющую, как использовать эту функцию в Python.

  • Как только статус модели будет отображаться как available, мы можем начать использовать ее в нашем приложении с помощью Analyze API.
  • Давайте попробуем отправить запрос на анализ, используя следующий текст спама, и посмотрим, что предсказывает наша модель.
Urgent! Please call 09061213237 from a landline. 5000 cash or a 4* holiday await collection. T &Cs SAE PO Box 177 M227XY. 16+
  • Следующая команда показывает, как мы можем использовать эту модель для прогнозирования с помощью curl:
  • Вышеупомянутый запрос analyze возвращает следующий ответ:
{
  "usage": {
    "text_units": 1,
    "text_characters": 125,
    "features": 1
  },
  "language": "en",
  "classifications": [
    {
      "confidence": 0.974358,
      "class_name": "spam"
    },
    {
      "confidence": 0.024414,
      "class_name": "ham"
    }
  ]
}

Это показывает, что наша модель пользовательской классификации смогла с высокой степенью уверенности пометить данный текст как спам.

Вывод

Функция классификации в Watson Natural Language Understanding обеспечивает масштабируемое и мощное решение для классификации текста. Это позволяет пользователям обучать пользовательскую модель классификации текста, используя свои собственные данные, всего за несколько шагов.

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

Зарегистрируйтесь на Watson Natural Language Understanding здесь и опробуйте классификации уже сегодня!

Ресурсы