Простой шаблон для преобразования текстовых данных в тензорный формат

Эта статья покажет вам, как подготовить текст для приложений на основе нейронных сетей. Учитывая объем текстовых данных, мы применим следующий процесс

  1. сопоставление слов текста (токена) с индексом
  2. создание специальных токенов для конца предложения, заполнения и символов вне словаря
  3. преобразование терминов в словаре в тензоры

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

  • __PAD__: обозначает символ заполнения.
  • ‹/e›: указывает на конец строки (конец предложения)
  • __UNK__: указывает на символ вне словаря, не принадлежащий словарю.

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

Набор данных

Мы будем использовать набор данных, предоставленный Sklearn, 20newsgroups, чтобы иметь быстрый доступ к массиву текстовых данных. В демонстрационных целях я буду использовать только образец из 10 текстов, но пример можно распространить на любое количество текстов.

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

Процесс

Функция предварительной обработки

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

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

Создание словаря

Работа со словарем позволяет нам сопоставить термин с индексом. Индекс будет элементом, который будет преобразован в тензор.

Вывод будет следующим

От текста к тензору

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

В этом примере мы не будем использовать TensorFlow, PyTorch или Numpy, чтобы объяснить, как работает этот процесс.

Начнем с функции text_to_tensor.

Теперь мы можем приступить к использованию нашего тензора для создания batch_generator и модели глубокого обучения, такой как LSTM.