Прежде чем обучать модель на текстовых данных, обычно необходимо обработать (или провести предварительную обработку) текст. Во многих случаях текст необходимо токенизировать и векторизовать перед передачей в модель, а в некоторых случаях требуются дополнительные этапы предварительной обработки, такие как нормализация и отбор признаков.
После преобразования текста в подходящий формат его можно использовать в рабочих процессах обработки естественного языка (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:
- TensorFlow Text : учебные пособия, руководства и другие ресурсы, которые помогут вам обрабатывать текст с помощью TensorFlow Text и KerasNLP.
- KerasNLP : Документация и ресурсы для KerasNLP.
- Учебные пособия по TensorFlow : основная документация по TensorFlow (это руководство) включает в себя несколько учебных пособий по обработке текста.
- Google Machine Learning: Руководство по классификации текстов : пошаговое введение в классификацию текстов. Это хорошее начало для новичков в машинном обучении.