Обработка текста и естественного языка с помощью TensorFlow

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

После преобразования текста в подходящий формат его можно использовать в рабочих процессах обработки естественного языка (NLP), таких как классификация текста, генерация текста, реферирование и перевод.

TensorFlow предоставляет две библиотеки для обработки текста и естественного языка: KerasNLP ( GitHub ) и TensorFlow Text ( GitHub ).

KerasNLP — это высокоуровневая библиотека моделирования обработки естественного языка (NLP), включающая все новейшие модели на основе трансформаторов, а также низкоуровневые утилиты токенизации. Это рекомендуемое решение для большинства случаев использования NLP. KerasNLP, основанный на TensorFlow Text, абстрагирует низкоуровневые операции обработки текста в API, разработанный для удобства использования. Но если вы предпочитаете не работать с API Keras или вам нужен доступ к низкоуровневым операциям обработки текста, вы можете использовать TensorFlow Text напрямую.

KerasNLP

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

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

KerasNLP — это расширение основного API Keras, и каждый высокоуровневый модуль KerasNLP представляет собой Layer или Model . Если вы знакомы с Keras, вы уже понимаете большую часть возможностей KerasNLP.

Текст TensorFlow

KerasNLP предоставляет высокоуровневые модули обработки текста, доступные в виде слоёв или моделей. Если вам нужен доступ к инструментам более низкого уровня, вы можете использовать TensorFlow Text . TensorFlow Text предоставляет операции и библиотеки для работы с необработанными текстовыми строками и документами. TensorFlow Text может выполнять предварительную обработку, обычно требуемую текстовыми моделями, а также включает другие функции, полезные для моделирования последовательностей.

Используя TensorFlow Text, вы можете сделать следующее:

  • Применяйте многофункциональные токенизаторы, которые могут разбивать строки по пробелам, разделять слова и знаки препинания, а также возвращать смещения байтов с токенами, чтобы вы знали, где в исходном тексте можно найти строку.
  • Проверьте, соответствует ли токен заданному шаблону строки. Вы можете проверить регистр, знаки препинания, числовые данные и другие характеристики токена.
  • Объединить токены в n-граммы.
  • Обрабатывать текст в графе TensorFlow так, чтобы токенизация во время обучения соответствовала токенизации при выводе.

С чего начать

Следующие ресурсы помогут вам начать работу с обработкой текста TensorFlow: