Овладение NLP Глубокое кодирование на Python для моделей глубокого обучения

Освоение NLP Глубокое кодирование на Python для моделей глубокого обучения

Пошаговое руководство с подробными объяснениями кода для классификации текста с использованием глубокого обучения на Python

Фотография от Waypixels на Unsplash

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

Поддерживающий код для приведенных здесь примеров можно найти по адресу: https://github.com/Eligijus112/NLP-python

В данной статье рассматриваются следующие темы:

  • Преобразование текста в последовательности
  • Преобразование индексов последовательности в векторы
  • Подробное объяснение RNN
  • Функция потерь для классификации
  • Полный NLP-пайплайн с использованием Pytorch

NLP расшифровывается как Обработка Натурального Языка¹. Это огромная тема о том, как использовать аппаратное и программное обеспечение для выполнения задач, таких как:

  • Перевод с одного языка на другой
  • Классификация текста
  • Суммирование текста
  • Предсказание следующего токена
  • Распознавание именованных сущностей

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

Множество задач в NLP начинаются с токенизации текста².

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

Рассмотрим строку:

“NLP в Python – это весело и очень хорошо задокументировано. Давайте начнем!”

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